扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:王凯明 来源:yesky 2007年11月13日
关键字:
namespace P2PTest { using System; using System.IO; using System.Net.Sockets; public class Sender { public void Send(string[] aInput) { string stream = ""; //获得要发送的信息 for(int i=2; i<aInput.Length; i++) { stream += aInput[i] + " "; } try { TcpClient tcpc = new TcpClient(aInput[1], 5656); //在5656端口新建一个TcpClient对象 NetworkStream tcpStream = tcpc.GetStream(); StreamWriter reqStreamW = new StreamWriter(tcpStream); reqStreamW.Write(stream); reqStreamW.Flush();//发送信息 tcpStream.Close(); tcpc.Close(); } catch(Exception) { Console.WriteLine("connection refused by target computer"); } } } } |
namespace P2PTest { using System; public class InputHandler { public bool appRun = true;//当appRun为false时,程序结束 public InputHandler() { Console.WriteLine("type help for a list of commands."); Input(); } private static Listener li;//一个静态的Listener对象 private string inparam; private string[] aInput;//数组aInput用于接受用户输入的信息 public void Input() { while(appRun) { inparam = Console.ReadLine(); aInput = inparam.Split(' '); //将inparam分割的目的是为了获得字符串中的第一个字,从而执行以下不同的命令 switch(aInput[0]) { case "send"://如果是"send",则新建一个Sender对象并发送信息 Sender se = new Sender(); se.Send(aInput); break; case "start"://如果是"start",则新的开始监听 try { li.listenerRun = false; li.Stop(); } catch(NullReferenceException) { ; } finally { li = new Listener(); } break; case "stop"://如果是"stop",则停止监听 try { li.listenerRun = false; li.Stop(); } catch(NullReferenceException) { ; } break; case "exit"://退出程序 try { li.listenerRun = false; li.Stop(); } catch(NullReferenceException) { ; } finally { appRun = false; } break; case "help"://显示帮助信息 Console.WriteLine("Commands:"); Console.WriteLine("start: starts the listener"); Console.WriteLine("stop: stops the listener if started"); Console.WriteLine("send: send <IP> <message> sends a message"); Console.WriteLine("exit: exits the application"); Console.WriteLine("help: you already know"); break; default: Console.WriteLine("Invalid command"); break; } } } } } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者