预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共20页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于Socket的网络编程 Socket又称为套接字,是采用客户/服务器模型设计的网络通信接口。Socket接口最早使 用在Unix系统中,Windows提供的Socket通信称为WinSock,目前存在v1.1版本(被封装 在WinSock.dll动态链接库文件中)和v2.0版本(被封装在WS2_32.dll动态链接库文件中)。 v1.1版本是针对Internet而设计的,在v2.0版本中已经不再局限于TCP/IP协议,而是根据 Microsoft提出的Windows开放系统架构(WindowsOpenSystemArchitecture,WOSA)模型, 定义了一个标准服务提供接口(StandardServiceProviderInterface,SPI)。通过SPI编程接 口,WinSock的应用范围扩大到绝大部分的网络和协议。 .NETFramework在System.Net.Sockets名空间提供了对WinSock的托管封装,提供 Socket、TcpListener、TcpClient、UdpClient以及NetworkStream等类来实现Socket网络通信。 类说明 Socket对WinSock的封装和扩展 TcpListener封装使用TCP协议进行网络侦听的Socket TcpClient封装使用TCP协议进行网络通信的Socket UdpClient封装使用UDP协议进行网络通信的Socket NetworkStream使用流的概念封装网络通信的数据 在这些类中,Socket类为核心类,它提供了使用WinSock进行网络通信的基本功能。 一、网络编程概念 网络中主机间的通信是通过网络协议实现的。目前,存在两种网络通信协议模型:开放 系统互连(OpenSystemInterconnection,OSI)参考模型和TCP/IP模型。 1、OSI参考模型 OSI参考模型是一个多层通信协议模型,所谓开放是指允许任意两个具有不同基本体系 结构的系统进行通信的一套协议族。OSI参考模型最初是由国际化标准组织(International StandardOrganization,ISO)开发,1983年成为国际标准。 OSI参考模型将网络划分成7层,从上之下分别是:应用层(ApplicationLayer)、表示 层(PresentationLayer)、会话层(SessionLayer)、传输层(TransportLayer)、网络层 (NetworkLayer)、数据链路层(DataLinkLayer)和物理层(PhysicalLayer)。其中,每 一层只与其上下两层直接通信,高层协议偏重于处理用户服务和各种应用请求,底层协议注 重于处理实际的信息传输。分层的目的是在于将各种特定的功能分离,并使其实现对其他层 来说是透明且相互独立的。 下图描述了一个包含通信子网的OSI网络通信模型。 (1)物理层 物理层定义了与物理介质的连接机制,而不是物理介质本身。按照OSI模型,物理层在 物理介质之上,它提供以比特(Bit)为单位形成比特流来传送来自数据链路层的数据,而 不理会数据的格式和含义,同样,当接受数据(比特流)时也不加分析直接传送到数据链路 层。即对二进制数据(比特)进行编码(发送到物理介质上)和解码(从物理介质上接受)。 如:以太网的曼切斯特编码,光纤分布式接口(FiberDistributedDataInterface,FDDI)的 4B5B编码。 物理层也负责通知数据链路层何时访问介质,如以太网的载波监听功能。此外,在某种 程度上,物理层也包含连接策略,主要有:电路交换、报文交换和分组交换。 (2)数据链路层 数据链路层也称为链路控制层(DataLinkControlLayer,DLC),负责管理数据格式、 链路的管理、相邻网络节点的信息流动以及流量控制。 在数据链路层中,数据常以帧(Frame)为单位进行传输,帧通常是由包含起始标志的 报头或报头位、寻址信息、循环冗余码(CyclicRedundancyCheck,CRC)组成。循环冗余 码用来保证帧在传输过程中的完整性,将无错的帧发送到网络层。 OSI模型中的数据链路层与电气与电子工程师协会(InstituteofElectricalandElectronic Engineers,IEEE)定义的有所不同。IEEE定义的数据链路层包含逻辑链路控制(Logical LinkControlLayer,LLC)和介质访问控制(MediaAccessControlLayer,MAC)。MAC层 基本对应OSI模型中的数据链路层,LLC层主要提供可靠的面向连接服务与无连接的数据报 服务,ISO在这之上提供了两种网络层服务,即面向连接的网络服务和