1 / 14
文档名称:

网络编程要考虑的问题.ppt

格式:ppt   大小:239KB   页数:14页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

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

分享

预览

网络编程要考虑的问题.ppt

上传人:wefe2019 2020/5/14 文件大小:239 KB

下载得到文件列表

网络编程要考虑的问题.ppt

相关文档

文档介绍

文档介绍:网络编程要考虑的问题并发环境下的网络编程异构环境下的网络编程阻塞与非阻塞通信服务类型的选择差错处理并发环境1、函数可重入问题2、资源共享访问控制,即互斥与同步3、系统资源释放与回收4、大量并发线程的创建管理异构环境字节顺序(Bigendian,Littleendian)LElittle-endian 最符合人的思维的字节序 地址低位存储值的低位 地址高位存储值的高位 怎么讲是最符合人的思维的字节序,是因为从人的第一观感来说 低位值小,就应该放在内存地址小的地方,也即内存地址低位 反之,高位值就应该放在内存地址大的地方,也即内存地址高位BEbig-endian 最直观的字节序 地址低位存储值的高位 地址高位存储值的低位 为什么说直观,不要考虑对应关系 只需要把内存地址从左到右按照由低到高的顺序写出 把值按照通常的高位到低位的顺序写出 两者对照,一个字节一个字节的填充进去(1)主机字节序不同的CPU上运行不同的操作系统,字节序也是不同的,参见下表。 处理器操作系统字节排序 Alpha全部Littleendian HP-PANTLittleendian HP-PAUNIXBigendian Intelx86全部Littleendian<-----x86系统是小端字节序系统 Motorola680x()全部Bigendian MIPSNTLittleendian MIPSUNIXBigendian TLittleendian PowerPC非NTBigendian<-----PPC系统是大端字节序系统 RS/6000UNIXBigendian SPARCUNIXBigendian IXP1200ARM核心全部Littleendianendian的字节顺序。(续)(2)例如将0x1234abcd写入到以0x0000开始的内存中,则结果为 big-endianlittle-endian 0x00000x120xcd 0x00010x230xab 0x00020xab0x34 0x00030xcd0x12 x86系列CPU都是little-endian的字节序.(3)网络字节序:bigendianTCP/IP中规定好的一种数据表示格式,与具体的CPU类型、操作系统等无关。(4)字节顺转换函数socketAPI提供了转换的函数有下面四个 htons把unsignedshort类型从主机序转换到网络序 htonl把unsignedlong类型从主机序转换到网络序 ntohs把unsignedshort类型从网络序转换到主机序 ntohl把unsignedlong类型从网络序转换到主机序(续)字的长度不同的实现对于相同的数据类型可能有不同的表示长度。如,64位操作系统与32位操作系统中,类型longint的长度是不一样的。16位平台char1个字节8位short2个字节16位int2个字节16位long4个字节32位指针2个字节32位平台char1个字节8位short2个字节16位int4个字节32位long4个字节longlong8个字节指针4个字节64位平台char1个字节short2个字节int4个字节long8个字节(区别)longlong8个字节指针8个字节(区别)(续)字节定界问题一般情况下,操作系统在分配内存时,数据结构以4字节定界。structs{ inta; charb; doublec; uniond{ chare[6]; intf[3]; }}网络协议的设计中,常常需要填充一些无用的字节以满足四字节定界,从而简化协议的实现。阻塞与非阻塞通信在阻塞模式下,利用TCP协议发送一个报文时,如果低层协议没有可用空间来存放用户数据,则应用进程将阻塞等待直到协议有可用的空间。而在非阻塞模式下,调用将直接返回而不需等待。在应用进程调用接收函数接收报文时,如果是在阻塞模式下,若没有到达的数据,则调用将一直阻塞直到有数据到达或出错;而在非阻塞模式下,将直接返回而不需等待。对于UDP协议而言,因为UDP没有发送缓存,所有UDP协议即使在阻塞模式下也不会发生阻塞。对于面向连接的协议,在连接建立阶段,阻塞与非阻塞也表现不一。在阻塞模式下,如果没有连接请求到达,则等待连接调用将阻塞直到有连接请求到达;但在非阻塞模式下,如果没有连接请求到达,等待连接调用将直接返回。在连接建立阶段,不管是阻塞模式还是非阻塞模式,发起连接请求的一方总是会使调用它的进程阻塞,阻塞间隔最少等于到达服务器的一次往返时间。服务类型的选择面向连接(connection-oriented)服务与无连接(connectionless)服务。面向连接服务。所谓连接,就是两个对等实体为进行数据通信而进行的一种结合。面向连接服务要求:在数据交换之前,必须先建立连接;当数据交换结束后,则应终止