System.Net.Sockets命名空间主要是提供制作Sockets网络应用程序的相关类,其中Socket类,TcpClient类、TcpListener类、UdpClient类较为常用,下面对其进行介绍
1、Socket类
Socket类为网络通信提供了一套丰富的方法和属性,主要用于管理连接,实现Berkelery通信段套接字接口,同时,还定义了绑定、连接网络端点以及传输数据所需的各种方法,并且提供处理断点连接传输等细节所需要的功能。Socket类通常属性如下:
Socket
AddressFamily:获取Socket的地址族。
Connected:获取一个值,这个值指示Socket是在上次Send还是Receive操作时连接到远程主机。
Handle:获取Socket的操作系统句柄。
LocalEndPoint:获取本地终结点。
ProtocolType:获取Socket的协议类型。
RemoteEndPoint:获取远程终结点。
SendTimeout:获取或设置一个值,该值指定之后同步Send调用将超时的时间长度。
Socket 类的常用方法:
Accept:为新建连接创建新的Socket。
Close:关闭Socket连接并且释放关联的资源。
Connect:建立和远程主机的连接。
Disconnect:关闭套接字连接并允许重用套接字。
Listen:将Socket置于侦听状态。
Receive:接受来自绑定的Socket数据。
Send:将数据发送到连接的Socket。
SendTo:将数据发送到特定终结点。
Shutdown:禁用某Socket上的发送和接受。
注意:如果现在使用的是面向连接的协议(如TCP),则服务器可以使用Listen方法侦听连接;如果当前使用的是无连接协议(UDP),则根本不需要侦听连接。
示例程序:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private static Socket ConnectSocket(string strServer,int intPort)
{
Socket s = null;
//实例化对象
IPHostEntry iph = null;
//实例化对象
iph = Dns.GetHostEntry(strServer);
//获得主机信息
foreach (IPAddress address in iph.AddressList)
{
IPEndPoint IPEPort =