TcpClient类与TcpListener类
Posted zhaotianff
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TcpClient类与TcpListener类相关的知识,希望对你有一定的参考价值。
TcpClient类
1 //构造方法1 2 TcpClient t = new TcpClient(); 3 t.Connect("www.163.com", 8000); 4 //构造方法2 5 IPEndPoint iep = new IPEndPoint(IPAddress.Parse("192.168.10.27"),8000); 6 TcpClient t2 = new TcpClient(iep); 7 t2.Connect("www.163.com", 8000);//也可以使用Connect方法与远程设备连接 8 //构造方法3 9 TcpClient t3 = new TcpClient("www.163.com", 8000); 10 11 12 //常用方法 13 //Close(); 关闭TCP连接 14 //Connect(); 用于与远程设备建立TCP连接 15 //GetStream 返回用于发送和接收数据的NetworkStream 16 //GetType() 获取当前实例的Type 17 18 //常用属性 19 //Availabe 获取已经从网络接收且可供读取的数据量 20 //Client 获取或设置基础Socket 21 //Connected 获取一个值,该值指示TcpClient的基础Socket是否已连接到远程主机 22 //ExclusiveAddressUse 获取或设置Boolean值,该值指定TcpClient是否只允许一个客户端使用端口 23 //LingerState 得到或者设置套接字保持时间 24 //NoDelay 得到或者设置套接接字保持的时间 25 //ReceiverBufferSize 得到或设置TCP接收缓冲区的尺寸 26 //ReceiveTimeout 得到或设置套接字接收数据的超时时间 27 //SendBufferSize 得到或者设置TCP发送缓冲区的大小 28 //SendTimeOut 得到或者设置套接字发送数据的超时时间
TcpListener类:
1 //构造函数 2 //TcpListener(int port); 3 //TcpListener(IPEndPoint ipe); 4 //TcpListener(IPAddress addr,int port); 5 //至少需要一个参数,那就是端口号 6 7 //TcpListener类的方法 8 //AcceptSocket 从端口处接收一个连接并赋予它Socket对象 9 //AcceptTcpClient 从端口处接收一个连接并赋予它TcpClient对象 10 //Pending 确定是否有挂起的连接请求 11 //Start 开始侦听传入的连接请求 12 //Stop 关闭侦听器 13 14 15 //生成TcpListener对象并收听流入连接的过程代码如下: 16 //初始化对象 17 TcpListener Server = new TcpListener(IPAddress.Parse("192.168.1.1"), 8000); 18 //开始监听端口 19 Server.Start(); 20 //这个对象接收从客户端发送来的数据 21 TcpClient newclient = Server.AcceptTcpClient();
测试代码:
1 //Client 2 3 static void Main(string[] args) 4 { 5 try 6 { 7 //建立TcpClient对象,并且连接到4001上的localhost 8 TcpClient newclient = new TcpClient(); 9 newclient.Connect("127.0.0.1", 4001); 10 NetworkStream stm = newclient.GetStream(); 11 //利用NetworkStream对象发送数据 12 //byte[] sendBytes = Encoding.ASCII.GetBytes("Data is coming" + "here"); 13 14 string strToSend = Console.ReadLine(); 15 byte[] sendBytes = Encoding.ASCII.GetBytes(strToSend); 16 17 stm.Write(sendBytes, 0, sendBytes.Length); 18 //关闭TcpClient 19 newclient.Close(); 20 Console.ReadLine(); 21 } 22 catch(Exception e) 23 { 24 //输出异常信息 25 Console.WriteLine(e.ToString()); 26 Console.WriteLine("Data has not been received"); 27 Console.ReadLine(); 28 } 29 }
1 //Server 2 3 static void Main(string[] args) 4 { 5 //服务器简单的侦听器编写 6 try 7 { 8 //创建TcpListener对象,侦听端口4001,用Start()方法进行侦听 9 TcpListener listener = new TcpListener(4001); 10 listener.Start(); 11 //AcceptTcpClient()方法接受一个连接请求,返回一个TcpClient,使用它的GetStream方法来创建NetworkStream对象 12 TcpClient tc = listener.AcceptTcpClient(); 13 NetworkStream stm = tc.GetStream(); 14 byte[] redBuf = new byte[50]; 15 //用Read()方法读取数据 16 stm.Read(redBuf, 0, 50); 17 //显示数据 18 Console.WriteLine(Encoding.ASCII.GetString(redBuf)); 19 stm.Close(); 20 Console.ReadLine(); 21 } 22 catch(Exception e) 23 { 24 Console.WriteLine(e.ToString()); 25 Console.ReadLine(); 26 } 27 }
以上是关于TcpClient类与TcpListener类的主要内容,如果未能解决你的问题,请参考以下文章
从服务器(tcplistener)向客户端(tcpclient)发送消息