网站大量收购独家精品文档,联系QQ:2885784924

网络编程要考虑问题.pptVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络编程要考虑问题.ppt

阻塞与非阻塞通信 在阻塞模式下,利用TCP协议发送一个报文时,如果低层协议没有可用空间来存放用户数据,则应用进程将阻塞等待直到协议有可用的空间。而在非阻塞模式下,调用将直接返回而不需等待。在应用进程调用接收函数接收报文时,如果是在阻塞模式下,若没有到达的数据,则调用将一直阻塞直到有数据到达或出错;而在非阻塞模式下,将直接返回而不需等待。 对于UDP 协议而言,因为UDP没有发送缓存,所有UDP协议即使在阻塞模式下也不会发生阻塞。 对于面向连接的协议,在连接建立阶段,阻塞与非阻塞也表现不一。在阻塞模式下,如果没有连接请求到达,则等待连接调用将阻塞直到有连接请求到达;但在非阻塞模式下,如果没有连接请求到达,等待连接调用将直接返回。 在连接建立阶段,不管是阻塞模式还是非阻塞模式,发起连接请求的一方总是会使调用它的进程阻塞,阻塞间隔最少等于到达服务器的一次往返时间。 服务类型的选择 面向连接(connection-oriented)服务与无连接(connectionless)服务。 面向连接服务。所谓连接,就是两个对等实体为进行数据通信而进行的一种结合。面向连接服务要求:在数据交换之前,必须先建立连接;当数据交换结束后,则应终止这个连接。 (续) 无连接服务。无连接服务指的是两个实体之间的通信不需要先建立好一条连接,其所需的下层资源在数据传输时动态地进行分配。 面向连接服务与无连接服务之间的比较 差错处理 任何应用程序均需要进行差错处理,即检查函数返回的调用结果的正确性并作出相应的处理。网络应用编程接口提供差错处理的基本设施,更高一级的差错处理需要应用程序来实现。 TCP编程的流程 实验 学会WinSock函数的装载和卸载。 编制console型的程序 用socket实现TCP流式通信 分别编写客户端和服务器,服务器实现监听 客户端发起通信,实现一句话的传送,比如“How are you”。 网络编程要考虑的问题 并发环境下的网络编程 异构环境下的网络编程 阻塞与非阻塞通信 服务类型的选择 差错处理 并发环境 1、函数可重入问题 2、资源共享访问控制,即互斥与同步 3、系统资源释放与回收 4、大量并发线程的创建管理 异构环境 字节顺序 (Big endian , Little endian ) LE little-endian 最符合人的思维的字节序 地址低位存储值的低位 地址高位存储值的高位 怎么讲是最符合人的思维的字节序,是因为从人的第一观感来说 低位值小,就应该放在内存地址小的地方,也即内存地址低位 反之,高位值就应该放在内存地址大的地方,也即内存地址高位 BE big-endian 最直观的字节序 地址低位存储值的高位 地址高位存储值的低位 为什么说直观,不要考虑对应关系 只需要把内存地址从左到右按照由低到高的顺序写出 把值按照通常的高位到低位的顺序写出 两者对照,一个字节一个字节的填充进去 (1)主机字节序 不同的CPU上运行不同的操作系统,字节序也是不同的,参见下表。 处理器 操作系统 字节排序 Alpha 全部 Little endian HP-PA NT Little endian HP-PA UNIX Big endian Intelx86 全部 Little endian -----x86系统是小端字节序系统 Motorola680x() 全部 Big endian MIPS NT Little endian MIPS UNIX Big endian PowerPC NT Little endian PowerPC 非NT Big endian -----PPC系统是大端字节序系统 RS/6000 UNIX Big endian SPARC UNIX Big endian IXP1200 ARM核心 全部 Little endian endian的字节顺序。 (续) (2)例如 将0x1234abcd写入到以0x0000开始的内存中,则结果为 big-endian little-endian 0x0000 0x12 0xcd 0x0001 0x23 0xab 0x0002 0xab 0x34 0x0003 0xcd 0x12 x86系列CPU都是little-endian的字节序. (3)网络字节序:big endian TCP/IP中规定好的一种数据表示格式,与具体的CPU类型、操作系统等无关 。 (4)字节顺转换函数 socket API提供了转换的函数 有下面四个 htons 把unsigned short类型从主机序转换到网络序 htonl 把unsign

您可能关注的文档

文档评论(0)

xx88606 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档