套接字和数据流操作
1套接字
套接字有3种不同的类型:流套接字、数据报套接字和原始套接字。流套接字用来实现面向连接的TCP通信,数据报套接字实现无连接的UDP通信,原始套接字实现Ip数据包通信。3种套接字的套接字均可以使用System.Net.Sockets命名空间中的Socket类来实现。
1、 addressFamily表示网络类型,该参数使用AddressFamily枚举指定Socket使用的寻址方案。
2、 socketType指定Socket的类型,该参数使用SocketType枚举指定使用哪种套接字。
3、 protocolType指定Socket使用的协议,该参数使用ProctocolType枚举指定使用哪种协议。
套接字之间的连接过程可以分为3个步骤:服务器监听、客户端请求、连接确认。
服务器监听是指服务器套接字并不定位具体的客户端套接字,而是出于等待连接的状态,实时监控网络状态。
客户端请求是指客户端的套接字提出连接请求,要连接的目标是服务器的套接字。为此,客户端的套接字必须首选描述他要连接的服务器的套接字,指出服务器套接字的地址和端口号,然后再向服务器套接字提出连接请求。
连接确认是指当服务器套接字监听到客户端套接字的连接请求时,它就响应客户端套接字的请求,把服务器套接字的信息发给客户端,一旦客户端确认了信息,连接即可建立。而服务器套接字继续监听其他客户端套接字的连接请求。
4、 建立连接
5、 服务器和客户端通信的前提是服务器首先在指定的端口监听是否有客户端连接请求,当客户端向服务器发出请求,服务器接受请求后,双方即可建立连接。
( 1)服务器端编程。在服务器程序中,首先应创建一个本地套接字对象。
Socket localSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
//然后将套接字绑定到用于TCP通信的本地IP地址和端口上。Bind方法用于完成绑定工作。
IPAddress ipAddress = Dns.GetHostAddresses(" ")[0];
IPEndPoint