1 / 20
文档名称:

Socket网络编程.pdf

格式:pdf   页数:20页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Socket网络编程.pdf

上传人:wangzhidaol 2016/7/19 文件大小:0 KB

下载得到文件列表

Socket网络编程.pdf

文档介绍

文档介绍:基于Socket的网络编程 Socket又称为套接字,是采用客户/服务器模型设计的网络通信接口。Socket接口最早使用在Unix系统中,Windows提供的Socket通信称为WinSock,()()。 ,,而是根据 Microsoft提出的Windows开放系统架构(Windows Open System Architecture,WOSA)模型, 定义了一个标准服务提供接口(Standard Service Provider Interface,SPI)。通过SPI编程接口,WinSock的应用范围扩大到绝大部分的网络和协议。.NET .Sockets名空间提供了对WinSock的托管封装,提供 Socket、TcpListener、TcpClient、workStream等类来实现Socket网络通信。类说明 Socket 对WinSock的封装和扩展 TcpListener 封装使用TCP协议进行网络侦听的Socket TcpClient 封装使用TCP协议进行网络通信的Socket UdpClient workStream 使用流的概念封装网络通信的数据在这些类中,Socket类为核心类,它提供了使用WinSock进行网络通信的基本功能。一、网络编程概念网络中主机间的通信是通过网络协议实现的。目前,存在两种网络通信协议模型:开放系统互连(Open System Interconnection,OSI)参考模型和TCP/IP模型。 1、OSI参考模型 OSI参考模型是一个多层通信协议模型,所谓开放是指允许任意两个具有不同基本体系结构的系统进行通信的一套协议族。OSI参考模型最初是由国际化标准组织(International anization,ISO)开发,1983年成为国际标准。 OSI参考模型将网络划分成7层,从上之下分别是:应用层(Application Layer)、表示层(Presentation Layer)、会话层(Session Layer)、传输层(Transport Layer)、网络层(Network Layer)、数据链路层(Data Link Layer)和物理层(Physical Layer)。其中,每一层只与其上下两层直接通信,高层协议偏重于处理用户服务和各种应用请求,底层协议注重于处理实际的信息传输。分层的目的是在于将各种特定的功能分离,并使其实现对其他层来说是透明且相互独立的。下图描述了一个包含通信子网的OSI网络通信模型。(1)物理层物理层定义了与物理介质的连接机制,而不是物理介质本身。按照OSI模型,物理层在物理介质之上,它提供以比特(Bit)为单位形成比特流来传送来自数据链路层的数据,而不理会数据的格式和含义,同样,当接受数据(比特流)时也不加分析直接传送到数据链路层。即对二进制数据(比特)进行编码(发送到物理介质上)和解码(从物理介质上接受)。如:以太网的曼切斯特编码,光纤分布式接口(Fiber Distributed Data Interface,FDDI)的 4B5B编码。物理层也负责通知数据链路层何时访问介质,如以太网的载波监听功能。此外,在某种程度上,物理层也包含连接策略,主要有:电路交换、报文交换和分组交换。(2)数据链路层数据链路层也称为链路控制层(Data Link Control Layer,DLC),负责管理数据格式、链路的管理、相邻网络节点的信息流动以及流量控制。在数据链路层中,数据常以帧(Frame)为单位进行传输,帧通常是由包含起始标志的报头或报头位、寻址信息、循环冗余码(Cyclic Redundancy Check,CRC)组成。循环冗余码用来保证帧在传输过程中的完整性,将无错的帧发送到网络层。 OSI模型中的数据链路层与电气与电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)定义的有所不同。IEEE定义的数据链路层包含逻辑链路控制(Logical Link Control Layer,LLC)和介质访问控制(Media Access Control Layer,MAC)。MAC层基本对应OSI模型中的数据链路层,LLC层主要提供可靠的面向连接服务与无连接的数据报服务,ISO在这之上提供了两种网络层服务,即面向连接的网络服务和无连接的网络服务。(3)网络层网络层提供跨越多个网络的路由和寻址功能,使两个终端系统能够以最佳路径进行互连, 并具有一定的堵塞控制和流量控制能力。在网络层中,通常以数据包(