TCP编程(二)

来源:互联网 发布:知乎华为软件开发面试 编辑:程序博客网 时间:2024/05/22 01:51

利用TCP开发程序时,.NET框架提供两种工作方式,一种是同步(Synchronization)工作方式,另一种是异步(Asynchronous)工作方式。

同步工作方式是指利用TCP编写的程序执行到监听或接受语句时,在未完成当前工作(侦听到连接请求或收到对方发来的数据)前不再继续往下执行,线程处于阻塞状态,知道该语句完成相应的工作后才继续执行下一条语句。

异步工作方式是指程序执行到监听或接受语句时,不论当前工作是否完成,都会继续往下执行。

与同步工作方式和异步工作方式相对应,利用Socket类进行编程时,系统也提供相应的方法,分别称为同步套接字编程和异步套接字编程。.NET框架专门提供了两个类:TcpClient类和TcpListener类,这两个类与套接字一样也分有同步和异步工作方式及其对应方法。

C#中的TCP编程

.NET对套接字进行封装TcpClient类和TcpListener类封装在System.Net.Sockets命名空间下。但是要注意,TcpClient类和TcpListener类只支持标准协议编程。如果希望编写非标准协议程序,只能使用套接字来实现。

TcpListener类用于监听客户端连接请求,TcpClient类用于提供本地主机和远程主机的连接信息。

TcpListener类

TcpListener类用于监听和接受传入的连接请求。该类的构造函数常用的有两种重载形式:

TcpListener(IPEndPoint iep)//在指定的IP地址与端口号监听客户端连接请求,iep包含本机的IP地址与端口号
TcpListener(IPAddress localAddr,int port)//直接指定本机IP地址和端口,并通过指定的IP端口监听传入连接请求。如果本机IP指定为IPAddress.Any端口为0则系统自动分配IP地址和端口号

TcpListener类的常用方法


TcpClient类

该类主要用于客户端编程,TcpClient的构造函数有以下四种重载形式:

TcpClient tcpClient =new TcpClient();//TcpClient()该构造函数创建一个默认的TcpClient对象,并自动分配本机(客户端)IP地址和端口号。tcpClient.Connect("www.abcd.com",518);//利用此构造函数创建对象后,还必须调用Connect方法与服务器建立连接。

TcpClient tcpClient=new TcpClient(AddressFamily.InterNetwork);//自动分配本机(客户端)IP地址和端口号,但是使用AddressFamily枚举指定使用哪种网络协议。tcpClient.Connect("www.abcd.com",518);//创建该对象后,还必须调用Connect方法与服务器建立连接。

IPAddress[] address=Dns.GetHostAddress (Dns.GetHostName());IPEndPoint iep= new IPEndPoint (address[0],518);TcpClient tcpClient =new TcpClient(iep);//该构造函数的参数iep指定本机(客户端)IP地址和端口号,当客户端有一个以上的IP地址时,而且程序员希望直接指定IP地址和端口号,可以使用这种方式。tcpClient.Connect("www.abcd.com",518);//创建该对象后,还必须调用Connect方法与服务器建立连接。</span>


TcpClient tcpClient =new TcpClient("www.abcd",518);//TcpClient(string hostname,int port)参数中的hostname表示要连接的远程主机DNS名,port表示要连接的远程主机的端口号</span>


TcpClient类的常用属性


TcpClient类的常用方法







0 0