网络编程要考虑的问题_第1页
网络编程要考虑的问题_第2页
网络编程要考虑的问题_第3页
网络编程要考虑的问题_第4页
网络编程要考虑的问题_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、n并发环境下的网络编程n异构环境下的网络编程 n阻塞与非阻塞通信 n服务类型的选择 n差错处理 并发环境并发环境n1、函数可重入问题n2、资源共享访问控制,即互斥与同步n3、系统资源释放与回收n4、大量并发线程的创建管理异构环境异构环境n字节顺序 (Big endian , Little endian ) LE little-endian最符合人的思维的字节序地址低位存储值的低位地址高位存储值的高位怎么讲是最符合人的思维的字节序,是因为从人的第一观感来说低位值小,就应该放在内存地址小的地方,也即内存地址低位反之,高位值就应该放在内存地址大的地方,也即内存地址高位 BE big-endian最直

2、观的字节序地址低位存储值的高位地址高位存储值的低位为什么说直观,不要考虑对应关系只需要把内存地址从左到右按照由低到高的顺序写出把值按照通常的高位到低位的顺序写出两者对照,一个字节一个字节的填充进去 (1)主机字节序不同的CPU上运行不同的操作系统,字节序也是不同的,参见下表。处理器 操作系统 字节排序Alpha 全部 Little endianHP-PA NT Little endianHP-PA UNIX Big endianIntelx86 全部 Little endian -x86系统是小端字节序系统Motorola680 x() 全部 Big endianMIPS NT Little

3、endianMIPS UNIX Big endianPowerPC NT Little endianPowerPC 非NT Big endian -PPC系统是大端字节序系统RS/6000 UNIX Big endianSPARC UNIX Big endianIXP1200 ARM核心 全部 Little endian endian的字节顺序。(续)(续)(2)例如 将0 x1234abcd写入到以0 x0000开始的内存中,则结果为 big-endian little-endian0 x0000 0 x12 0 xcd0 x0001 0 x23 0 xab0 x0002 0 xab 0 x

4、340 x0003 0 xcd 0 x12x86系列CPU都是little-endian的字节序.(3)网络字节序:big endian TCP/IP中规定好的一种数据表示格式,与具体的CPU类型、操作系统等无关 。(4)字节顺转换函数 socket API提供了转换的函数 有下面四个htons 把unsigned short类型从主机序转换到网络序htonl 把unsigned long类型从主机序转换到网络序ntohs 把unsigned short类型从网络序转换到主机序ntohl 把unsigned long类型从网络序转换到主机序 (续)(续)n字的长度 不同的实现对于相同的数据类型

5、可能有不同的表示长度。如,64位操作系统与32位操作系统中,类型long int的长度是不一样的。 n16位平台nchar 1个字节8位nshort 2个字节16位nint 2个字节16位nlong 4个字节32位n指针 2个字节n32位平台nchar 1个字节8位nshort 2个字节16位nint 4个字节32位nlong 4个字节nlong long 8个字节n指针 4个字节n64位平台nchar 1个字节nshort 2个字节nint 4个字节nlong 8个字节(区别)nlong long 8个字节n指针 8个字节(区别)(续)(续)n字节定界问题 一般情况下,操作系统在分配内存时,

6、数据结构以4字节定界。struct sint a;char b;double c;union d char e6; int f3; 网络协议的设计中,常常需要填充一些无用的字节以满足四字节定界,从而简化协议的实现。 阻塞与非阻塞通信阻塞与非阻塞通信 n在阻塞模式下,利用TCP协议发送一个报文时,如果低层协议没有可用空间来存放用户数据,则应用进程将阻塞等待直到协议有可用的空间。而在非阻塞模式下,调用将直接返回而不需等待。在应用进程调用接收函数接收报文时,如果是在阻塞模式下,若没有到达的数据,则调用将一直阻塞直到有数据到达或出错;而在非阻塞模式下,将直接返回而不需等待。n对于UDP 协议而言,因为

7、UDP没有发送缓存,所有UDP协议即使在阻塞模式下也不会发生阻塞。n对于面向连接的协议,在连接建立阶段,阻塞与非阻塞也表现不一。在阻塞模式下,如果没有连接请求到达,则等待连接调用将阻塞直到有连接请求到达;但在非阻塞模式下,如果没有连接请求到达,等待连接调用将直接返回。n在连接建立阶段,不管是阻塞模式还是非阻塞模式,发起连接请求的一方总是会使调用它的进程阻塞,阻塞间隔最少等于到达服务器的一次往返时间。 服务类型的选择服务类型的选择 n面向连接(connection-oriented)服务与无连接(connectionless)服务。 n 面向连接服务。所谓连接,就是两个对等实体为进行数据通信而进

8、行的一种结合。面向连接服务要求:在数据交换之前,必须先建立连接;当数据交换结束后,则应终止这个连接。(续)(续)n无连接服务。无连接服务指的是两个实体之间的通信不需要先建立好一条连接,其所需的下层资源在数据传输时动态地进行分配。 面向连接服务与无连接服务之间面向连接服务与无连接服务之间的比较的比较 差错处理差错处理 n任何应用程序均需要进行差错处理,即检查函数返回的调用结果的正确性并作出相应的处理。网络应用编程接口提供差错处理的基本设施,更高一级的差错处理需要应用程序来实现。TCP编程的流程 实验实验n学会WinSock函数的装载和卸载。n编制console型的程序n用socket实现TCP流式通信n分别编写客户端和服务器,服务器实现监听n客户端发起通信,实现一句话的传送,比如“How are you”。复习题复习题n思考题p网络应用程序运行在网络的哪个部分?p网络的哪些层次在网络的端系统上?p网络字节序是哪种?p什么是套接字?三种套接字类型分别是哪些?p为什么服务器需要绑定端口,而一般客户端不需要?p哪些协议是网络层的,如何对网络层的协议进行编程处理?p原始套接字的作用及编程实现原理?p如何实现组播及广播通信的?p三种网络应用程序体系结构的优缺点pudp和tcp如何定位网络上的一个应用程序?p相对于虚电路网络,数据报网络有哪些优缺点?p网络服务器有哪些类型?

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论