本文使用的开发环境是VS2017及dotNet4.0,写此随笔的目的是给自己及新开发人员作为参考,
本例子比较简单,使用的是控制台程序开发,若需要使用该软件作为演示,必须先运行服务端,再运行客户端。
因为是首次接触该方面的知识,写得比较简陋,如有更好的建议,请提出,谢谢!
使用系统; 使用text; 使用System.Net; 使用System.Net.Sockets; 使用System.Threading.Tasks; 名称空间ChatServer { 类项目 { 静态void Main (string [] args) { bool取消=false; byte[]新字节缓冲区=[1024]; 字符串消息; byte [] messageBytes; int数=0; TcpListener TcpListener=new TcpListener(新IPEndPoint (IPAddress。任何,13000)); tcpListener.Start (); 控制台。WriteLine(“等待连接…"); TcpClient TcpClient=tcpListener.AcceptTcpClient (); Console.WriteLine(“连接。”); NetworkStream流=tcpClient.GetStream (); Task.Factory.StartNew(()=比; { 在((count=流。读(缓冲区,0,buffer.Length)) !=0) { Console.WriteLine ($ {DateTime。现在:yyyy-MM-dd HH: mm: ss fff}回复从服务器{tcpClient.Client.LocalEndPoint.ToString ()}: {Encoding.UTF8。GetString(缓冲区,0,count)}”); } }); 任务t=Task.Factory.StartNew(()=比; { 而取消(!) { 消息=Console.ReadLine (); 如果(message.ToUpper ()==" Y ") { 取消=true; 返回; } messageBytes=Encoding.UTF8.GetBytes(消息); 流。写(messageBytes 0 messageBytes.Length); } }); 如果(取消)tcpClient.Close (); 而(真) { 如果(t !=零,,t.IsCompleted)休息; } } } }
使用系统; 使用来; 使用text; 使用System.Net; 使用System.Net.Sockets; 使用System.Threading; 使用System.Threading.Tasks; 名称空间ChatClient { 类项目 { 静态void Main (string [] args) { bool取消=false; byte[]新字节缓冲区=[1024]; 字符串消息; byte [] messageBytes; int数=0; 试一试 { TcpClient TcpClient=new TcpClient(新IPEndPoint (Dns.GetHostEntry (Dns.GetHostName ()) .AddressList。在哪里(p=祝辞p。AddressFamily==AddressFamily.InterNetwork)当代(),14000)); tcpClient。连接(新IPEndPoint (IPAddress.Parse (“192.168.94.26”), 13000)); NetworkStream流=tcpClient.GetStream (); Task.Factory.StartNew(()=比; { 在((count=流。读(缓冲区,0,buffer.Length)) !=0) { Console.WriteLine ($ {DateTime。现在:yyyy-MM-dd HH: mm: ss fff}从客户端回复{tcpClient.Client.LocalEndPoint.ToString ()}: {Encoding.UTF8。GetString(缓冲区,0,count)}”); } }); 任务t=Task.Factory.StartNew(()=比; { 而取消(!) { 消息=Console.ReadLine (); 如果(message.ToUpper ()==" Y ") { 取消=true; 返回; } messageBytes=Encoding.UTF8.GetBytes(消息); 流。写(messageBytes 0 messageBytes.Length); thread . sleep (10); } }); 如果(取消)tcpClient.Close (); 而(真) { 如果(t !=零,,t.IsCompleted)休息; } } 捕获(异常交货) { Console.WriteLine (ex.Message); Console.ReadKey (); } } } }
以上这篇c#使用TcpListener及TcpClient开发一个简单的聊天工具实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。