TcpClient类与TcpListener类

时间:2021-08-23 03:42:48

TcpClient类

        //构造方法1
TcpClient t = new TcpClient();
t.Connect("www.163.com", );
//构造方法2
IPEndPoint iep = new IPEndPoint(IPAddress.Parse("192.168.10.27"),);
TcpClient t2 = new TcpClient(iep);
t2.Connect("www.163.com", );//也可以使用Connect方法与远程设备连接
//构造方法3
TcpClient t3 = new TcpClient("www.163.com", ); //常用方法
//Close(); 关闭TCP连接
//Connect(); 用于与远程设备建立TCP连接
//GetStream 返回用于发送和接收数据的NetworkStream
//GetType() 获取当前实例的Type //常用属性
//Availabe 获取已经从网络接收且可供读取的数据量
//Client 获取或设置基础Socket
//Connected 获取一个值,该值指示TcpClient的基础Socket是否已连接到远程主机
//ExclusiveAddressUse 获取或设置Boolean值,该值指定TcpClient是否只允许一个客户端使用端口
//LingerState 得到或者设置套接字保持时间
//NoDelay 得到或者设置套接接字保持的时间
//ReceiverBufferSize 得到或设置TCP接收缓冲区的尺寸
//ReceiveTimeout 得到或设置套接字接收数据的超时时间
//SendBufferSize 得到或者设置TCP发送缓冲区的大小
//SendTimeOut 得到或者设置套接字发送数据的超时时间

TcpListener类:

          //构造函数
//TcpListener(int port);
//TcpListener(IPEndPoint ipe);
//TcpListener(IPAddress addr,int port);
//至少需要一个参数,那就是端口号 //TcpListener类的方法
//AcceptSocket 从端口处接收一个连接并赋予它Socket对象
//AcceptTcpClient 从端口处接收一个连接并赋予它TcpClient对象
//Pending 确定是否有挂起的连接请求
//Start 开始侦听传入的连接请求
//Stop 关闭侦听器 //生成TcpListener对象并收听流入连接的过程代码如下:
//初始化对象
TcpListener Server = new TcpListener(IPAddress.Parse("192.168.1.1"), );
//开始监听端口
Server.Start();
//这个对象接收从客户端发送来的数据
TcpClient newclient = Server.AcceptTcpClient();

测试代码:

 //Client

 static void Main(string[] args)
{
try
{
//建立TcpClient对象,并且连接到4001上的localhost
TcpClient newclient = new TcpClient();
newclient.Connect("127.0.0.1", );
NetworkStream stm = newclient.GetStream();
//利用NetworkStream对象发送数据
//byte[] sendBytes = Encoding.ASCII.GetBytes("Data is coming" + "here"); string strToSend = Console.ReadLine();
byte[] sendBytes = Encoding.ASCII.GetBytes(strToSend); stm.Write(sendBytes, , sendBytes.Length);
//关闭TcpClient
newclient.Close();
Console.ReadLine();
}
catch(Exception e)
{
//输出异常信息
Console.WriteLine(e.ToString());
Console.WriteLine("Data has not been received");
Console.ReadLine();
}
}
 //Server

 static void Main(string[] args)
{
//服务器简单的侦听器编写
try
{
//创建TcpListener对象,侦听端口4001,用Start()方法进行侦听
TcpListener listener = new TcpListener();
listener.Start();
//AcceptTcpClient()方法接受一个连接请求,返回一个TcpClient,使用它的GetStream方法来创建NetworkStream对象
TcpClient tc = listener.AcceptTcpClient();
NetworkStream stm = tc.GetStream();
byte[] redBuf = new byte[];
//用Read()方法读取数据
stm.Read(redBuf, , );
//显示数据
Console.WriteLine(Encoding.ASCII.GetString(redBuf));
stm.Close();
Console.ReadLine();
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
Console.ReadLine();
}
}