您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 19WIN高级编程04套接字与数据流
1第第第第4444章章章章套接字与数据流套接字与数据流套接字与数据流套接字与数据流4444.1.1.1.1套接字套接字套接字套接字4.1.1.1.1.1.1.1.1面向连接的套接字面向连接的套接字面向连接的套接字面向连接的套接字4.1.24.1.24.1.24.1.2无连接的套接字无连接的套接字无连接的套接字无连接的套接字4444.2.2.2.2数据流数据流数据流数据流4.2.14.2.14.2.14.2.1文件流文件流文件流文件流4.2.24.2.24.2.24.2.2内存流内存流内存流内存流4.2.34.2.34.2.34.2.3网络流网络流网络流网络流4.2.44.2.44.2.44.2.4StreamWriterStreamWriterStreamWriterStreamWriter与与与与StreamReaderStreamReaderStreamReaderStreamReader类类类类4.2.54.2.54.2.54.2.5BinaryReaderBinaryReaderBinaryReaderBinaryReader与与与与BinaryWriterBinaryWriterBinaryWriterBinaryWriter类类类类2�本章教学目的本章教学目的本章教学目的本章教学目的学习学习学习学习套接字套接字套接字套接字编程的基本方法,以及数据流相关类的编程的基本方法,以及数据流相关类的编程的基本方法,以及数据流相关类的编程的基本方法,以及数据流相关类的用法。用法。用法。用法。�本章教学要求本章教学要求本章教学要求本章教学要求((((1111)掌握)掌握)掌握)掌握套接字的概念套接字的概念套接字的概念套接字的概念及及及及SocketSocketSocketSocket类用法类用法类用法类用法;;;;((((2222)掌握)掌握)掌握)掌握面向连接套接字编程面向连接套接字编程面向连接套接字编程面向连接套接字编程、、、、无连接套接字编程无连接套接字编程无连接套接字编程无连接套接字编程基本步骤基本步骤基本步骤基本步骤((((3333)掌握)掌握)掌握)掌握FileStreamFileStreamFileStreamFileStream、、、、MemoryStreamMemoryStreamMemoryStreamMemoryStream、、、、NetworkNetworkNetworkNetworkStreamStreamStreamStream类的用法;类的用法;类的用法;类的用法;((((4444)掌握)掌握)掌握)掌握StreamReaderStreamReaderStreamReaderStreamReader、、、、StreamWriterStreamWriterStreamWriterStreamWriter、、、、BinaryBinaryBinaryBinaryReaderReaderReaderReader、、、、BinaryWriterBinaryWriterBinaryWriterBinaryWriter类的基本用法。类的基本用法。类的基本用法。类的基本用法。本章重点本章重点本章重点本章重点34.14.14.14.1套接字套接字套接字套接字�一个连接由它的两个端点标识,这样的端点称为套接一个连接由它的两个端点标识,这样的端点称为套接一个连接由它的两个端点标识,这样的端点称为套接一个连接由它的两个端点标识,这样的端点称为套接字。字。字。字。44.14.14.14.1套接字(续套接字(续套接字(续套接字(续))))�套接字是支持套接字是支持套接字是支持套接字是支持TCP/IPTCP/IPTCP/IPTCP/IP协议协议协议协议的网络通信的基本操作单的网络通信的基本操作单的网络通信的基本操作单的网络通信的基本操作单元。可以将套接字看作元。可以将套接字看作元。可以将套接字看作元。可以将套接字看作不同主机间的进程进行双向通不同主机间的进程进行双向通不同主机间的进程进行双向通不同主机间的进程进行双向通信的信的信的信的端点端点端点端点。。。。�上图连接上图连接上图连接上图连接1111的一对套接字为:的一对套接字为:的一对套接字为:的一对套接字为:((((192.168.2.23:5001192.168.2.23:5001192.168.2.23:5001192.168.2.23:5001))))和和和和((((192.168.2.122:8888192.168.2.122:8888192.168.2.122:8888192.168.2.122:8888))))上图连接上图连接上图连接上图连接2222的一对套接字为:的一对套接字为:的一对套接字为:的一对套接字为:((((192.168.2.24:5000192.168.2.24:5000192.168.2.24:5000192.168.2.24:5000))))和和和和((((192.168.2.122:8888192.168.2.122:8888192.168.2.122:8888192.168.2.122:8888))))�对于对于对于对于UDPUDPUDPUDP协议协议协议协议尽管两个进程之间尽管两个进程之间尽管两个进程之间尽管两个进程之间没有建立连接没有建立连接没有建立连接没有建立连接,但是,但是,但是,但是也同样存在发送端点,和接收端点也同样存在发送端点,和接收端点也同样存在发送端点,和接收端点也同样存在发送端点,和接收端点,也同样使用套接,也同样使用套接,也同样使用套接,也同样使用套接字的概念。字的概念。字的概念。字的概念。54.14.14.14.1套接字(续套接字(续套接字(续套接字(续))))�套接字的类型有:套接字的类型有:套接字的类型有:套接字的类型有:1.1.1.1.流式流式流式流式套接字套接字套接字套接字:提供了:提供了:提供了:提供了面向连接的面向连接的面向连接的面向连接的、、、、可靠的可靠的可靠的可靠的、数据、数据、数据、数据无错无错无错无错并且并且并且并且无重复无重复无重复无重复的数据发送服务,而且接收数据的数据发送服务,而且接收数据的数据发送服务,而且接收数据的数据发送服务,而且接收数据的顺序和发送数据的的顺序和发送数据的的顺序和发送数据的的顺序和发送数据的顺序是相同顺序是相同顺序是相同顺序是相同的。的。的。的。2.2.2.2.数据报数据报数据报数据报套接字套接字套接字套接字:提供了面向:提供了面向:提供了面向:提供了面向无连接的无连接的无连接的无连接的服务服务服务服务,,,,它以它以它以它以独独独独立的数据包立的数据包立的数据包立的数据包形式发送数据形式发送数据形式发送数据形式发送数据((((数据包长度不能大于数据包长度不能大于数据包长度不能大于数据包长度不能大于32323232KB)KB)KB)KB),,,,不提供正确性检查不提供正确性检查不提供正确性检查不提供正确性检查,也,也,也,也不保证不保证不保证不保证各数据包的各数据包的各数据包的各数据包的发送顺序和接收发送顺序和接收发送顺序和接收发送顺序和接收顺序相同顺序相同顺序相同顺序相同,因此,可能出现数据,因此,可能出现数据,因此,可能出现数据,因此,可能出现数据的的的的重发重发重发重发、、、、丢失丢失丢失丢失等现象。等现象。等现象。等现象。3.3.3.3.原始原始原始原始套接字套接字套接字套接字:用于:用于:用于:用于直接访问协议的较低层直接访问协议的较低层直接访问协议的较低层直接访问协议的较低层。常用。常用。常用。常用于检验新的协议实现或访问现有服务中配置的新于检验新的协议实现或访问现有服务中配置的新于检验新的协议实现或访问现有服务中配置的新于检验新的协议实现或访问现有服务中配置的新设备,一般不提倡直接使用原始套接字。设备,一般不提倡直接使用原始套接字。设备,一般不提倡直接使用原始套接字。设备,一般不提倡直接使用原始套接字。64.14.14.14.1套接字(续套接字(续套接字(续套接字(续))))�SocketSocketSocketSocket类类类类包含在包含在包含在包含在System.Net.SocketsSystem.Net.SocketsSystem.Net.SocketsSystem.Net.Sockets命名空间中。命名空间中。命名空间中。命名空间中。�一个一个一个一个SocketSocketSocketSocket实例包含了一个本地或者一个远程端点实例包含了一个本地或者一个远程端点实例包含了一个本地或者一个远程端点实例包含了一个本地或者一个远程端点的套接字信息。的套接字信息。的套接字信息。的套接字信息。�使用使用使用使用SocketSocketSocketSocket类编程类编程类编程类编程,由于,由于,由于,由于很多细节都需要自己考很多细节都需要自己考很多细节都需要自己考很多细节都需要自己考虑虑虑虑,相对来说,相对来说,相对来说,相对来说复杂一些复杂一些复杂一些复杂一些,易出错。一般对套接字编程,易出错。一般对套接字编程,易出错。一般对套接字编程,易出错。一般对套接字编程比较熟悉的人,或者使用非标准协议(自定义的新协比较熟悉的人,或者使用非标准协议(自定义的新协比较熟悉的人,或者使用非标准协议(自定义的新协比较熟悉的人,或者使用非标准协议(自定义的新协议)进行编程的时候,才使用议)进行编程的时候,才使用议)进行编程的时候,才使用议)进行编程的时候,才使用SocketSocketSocketSocket类。类。类。类。�SocketSocketSocketSocket类的构造函数为:类的构造函数为:类的构造函数为:类的构造函数为:publicSocket(publicSocket(publicSocket(publicSocket(AddressFamilyAddressFamilyAddressFamilyAddressFamilyaddressFamilyaddressFamilyaddressFamilyaddressFamily,,,,////////网络类型网络类型网络类型网络类型SocketTypeSocketTypeSocketTypeSocketTypesocketTypesocketTypesocketTypesocketType,,,,////////套接字类型套接字类型套接字类型套接字类型ProtocolTypeProtocolTypeProtocolTypeProtocolTypeprotocolTypeprotocolTypeprotocolTypeprotocolType););););////////使用的协议使用的协议使用的协议使用的协议74.14.14.14.1套接字(续套接字(续套接字(续套接字(续))))参数含义:参数含义:参数含义:参数含义:((((1111))))addressFamilyaddressFamilyaddressFamilyaddressFamilyaddressFamilyaddressFamilyaddressFamilyaddressFamily表示表示表示表示网络类型网络类型网络类型网络类型,该参数使,该参数使,该参数使,该参数使用用用用AddressFamilyAddressFamilyAddressFamilyAddressFamily枚举指定枚举指定枚举指定枚举指定SocketSocketSocketSocket使用的寻使用的寻使用的寻使用的寻址方案址方案址方案址方案例如例如例如例如,,,,AddressFamily.InterNetworkAddressFamily.InterNetworkAddressFamily.InterNetworkAddressFamily.InterNetwork表示表示表示表示IPIPIPIP版本版本版本版本4444的地址。的地址。的地址。的地址。84.14.14.14.1套接字(续套接字(续套接字(续套接字(续))))94.14.14
本文标题:19WIN高级编程04套接字与数据流
链接地址:https://www.777doc.com/doc-5523779 .html