欢迎来到天天文库
浏览记录
ID:25494644
大小:90.50 KB
页数:19页
时间:2018-11-20
《c#socket编程新手入门篇》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Socket编程-新手入门篇(附有实例)本文描述了Windows平台下使用C#进行Socket开发的方法和实例,并扼要的描述了UNIX平台下的BerkeleySocket和AT&T的TLI编程接口的说明。一、基于.net平台的C#Socket编程 前一篇《VisualC#.Net网络程序开发之Socket》中说到:支持Http、Tcp和Udp的类组成了TCP/IP三层模型(请求响应层、应用协议层、传输层)的中间层-应用协议层,该层的类比位于最底层的Socket类提供了更高层次的抽象,它们封装TCP和UDP套接字的
2、创建,不需要处理连接的细节,这使得我们在编写套接字级别的协议时,可以更多地尝试使用TCPClient、UDPClient和TcpListener,而不是直接向Socket中写。它们之间的这种层次关系示意如下: 可见,TcpClient类基于Socket类构建,这是它能够以更高的抽象程度提供TCP服务的基础。正因为这样,许多应用层上的通讯协议,比如FTP(FileTransfersProtocol)文件传输协议、HTTP(HypertextTransfersProtocol)超文本传输协议等都直接创建在TcpCli
3、ent等类之上。 TCPClient类使用TCP从Internet资源请求数据。TCP协议建立与远程终结点的连接,然后使用此连接发送和接收数据包。TCP负责确保将数据包发送到终结点并在数据包到达时以正确的顺序对其进行组合。 从名字上就可以看出,TcpClient类专为客户端设计,它为TCP网络服务提供客户端连接。TcpClient提供了通过网络连接、发送和接收数据的简单方法。 若要建立TCP连接,必须知道承载所需服务的网络设备的地址(IPAddress)以及该服务用于通讯的TCP端口(Port)。Intern
4、et分配号码机构(InternetAssignedNumbersAuthority,IANA)定义公共服务的端口号(你可以访问http://www.iana.org/assignments/port-numbers获得这方面更详细的资料)。IANA列表中所没有的服务可使用1,024到65,535这一范围中的端口号。要创建这种连接,你可以选用TcpClient类的三种构造函数之一: 1、publicTcpClient()当使用这种不带任何参数的构造函数时,将使用本机默认的ip地址并将使用默认的通信端口号0。这样情况
5、下,如果本机不止一个ip地址,将无法选择使用。以下语句示例了如何使用默认构造函数来创建新的TcpClient:TcpClienttcpClientC=newTcpClient(); 2、publicTcpClient(IPEndPoint)使用本机IPEndPoint创建TcpClient的实例对象。上一篇介绍过了,IPEndPoint将网络端点表示为IP地址和端口号,在这里它用于指定在建立远程主机连接时所使用的本地网络接口(IP地址)和端口号,这个构造方法为使用本机IPAddress和Port提供了选择余地。下
6、面的语句示例了如何使用本地终结点创建TcpClient类的实例:IPHostEntryipInfo=Dns.GetHostByName("www.tuha.net");//主机信息IPAddressList[]ipList=ipInfo.AddressList;//IP地址数组IPAddressip=ipList[0];//多IP地址时一般用第一个IPEndPointipEP=newIPEndPoint(ip,4088);//得到网络终结点try{TcpClienttcpClientA=newTcpClient(i
7、pLocalEndPoint);}catch(Exceptione){Console.WriteLine(e.ToString());} 到这里,你可能会感到困惑,客户端要和服务端创建连接,所指定的IP地址及通信端口号应该是远程服务器的呀!事实上的确如此,使用以上两种构造函数,你所实现的只是TcpClient实例对象与IP地址和Port端口的绑定,要完成连接,你还需要显式指定与远程主机的连接,这可以通过TcpClient类的Connect方法来实现,Connet方法使用指定的主机名和端口号将客户端连接到远程主机:
8、 1)、publicvoidConnect(IPEndPoint);使用指定的远程网络终结点将客户端连接到远程TCP主机。publicvoidConnect(IPAddress,int);使用指定的IP地址和端口号将客户端连接到TCP主机。publicvoidConnect(string,int);将客户端连接到指定主机上的指定端口。 需要指出的是,Co
此文档下载收益归作者所有