基于 Socket的网络编程Socket又称为套接字,是采用客户/服务器模型设计的网络通信接口
Socket接口最早使用在Unix系统中,Windows提供的Socket通信称为WinSock,目前存在v1
1版本(被封装在 WinSock
dll动态链接库文件中)和v2
0版本(被封装在WS2_32
dll动态链接库文件中)
1版本是针对Internet而设计的,在v2
0版本中已经不再局限于TCP/IP 协议,而是根据Microsoft 提出的 Windows 开放系统架构(Windows Open System Architecture,WOSA)模型,定义了一个标准服务提供接口(Standard Service Provider Interface,SPI)
通过 SPI 编程接口,WinSock 的应用范围扩大到绝大部分的网络和协议
NET Framework在 System
Sockets 名空间提供了对 WinSock 的托管封装,提供Socket、TcpListener、TcpClient、UdpClient 以及 NetworkStream 等类来实现 Socket 网络通信
类说明Socket对 WinSock的封装和扩展TcpListener封装使用TCP 协议进行网络侦听的 SocketTcpClient封装使用 TCP 协议进行网络通信的 SocketUdpClient封装使用 UDP 协议进行网络通信的 SocketNetworkStream使用流的概念封装网络通信的数据在这些类中,Socket 类为核心类,它提供了使用 WinSock 进行网络通信的基本功能
一、网络编程概念网络中主机间的通信是通过网络协议实现的
目前,存在两种网络通信协议模型:开放系统互连(Open System Interconnection,OSI)参考模