网络程序设计介绍.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《网络程序设计介绍.ppt》由会员分享,可在线阅读,更多相关《网络程序设计介绍.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、网络程序设计一、winsocket(c/s)二、(b/s)三、web service(windows客户端/web 服务器)AfxBeginThread(MyWorkerThread,(LPVOID)pString);网络程序设计要考虑的问题计算机网络程序设计因为涉及不同平台之间的信息交互(单点和多点),因此与单机上的程序设计有很大的不同。了解网络程序设计要注意的一些问题,有助于设计、编写高质量的网络应用程序。1、并发环境下的网络编程单进程应用与多进程或多线程的编程有着很大的区别。在多进程或多线程应用程序中,涉及到资源共享、进程或线程间的同步,因而要复杂的多。在多进程或多线程应用中,使用的系统
2、调用或函数必须是可重入的。哪些系统调用或系统函数是可重入的,这在不同的系统中是不同的。在多线程应用中,对调用或函数的使用有很多限制。如,在Solaris操作系统中,在一个线程中关闭另一个线程正在使用的网络端口会导致应用程序“死掉”,而在Digital Unix中不会。2、异构环境下的网络编程 网络通信常常是在多个平台之间进行,因此网络应用程序必须考虑不同平台之间的异构性,特别是不同平台上的数据格式的差异。(1)字节顺序 不同的平台(cpu)以不同的方式存放一个二进制。最常见的有两种格式大数字节序是高字节数据存放在低地址处,低字节数据存放在高地址处。一个多字节值 0 xFECDBA98,内存从地
3、址100开始存放。例:FE|CD|BA|98-对应地址100|101|102|103小数字节序指低字节数据存放在内存低地址处,高字节数据存放在内存高地址处;例:98|BA|CD|FE-对应地址100|101|102|103(2)字的长度不同的实现对于相同的数据类型可能有不同的表示长度。如,64位操作系统与32位操作系统中,类型long int的长度是不一样的。对short,int的大小也没有明确的规定。不同的语言也不同。例:java中int是32位;标准c中int 是16位。(3)字节定界问题(数据对齐)不同的平台上给结构(struct)或联合(union)打包的方式也是不同的。例:struc
4、t char c;char hh;int i;s1;语句sizeof(s1)(四字节对齐)在一些编译系统中是8;而在另一些编译系统中可能是12。1)结构体变量的首地址能够被其结构体变量的首地址能够被其最宽最宽基本类型成基本类型成员的大小所整除;员的大小所整除;2)结构体每个成员相对于结构体首地址的偏移量结构体每个成员相对于结构体首地址的偏移量(offset)都是成员大小的整数倍,如有需要编)都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节(译器会在成员之间加上填充字节(internal adding););3)结构体的总大小为结构体最宽基本类型成员大结构体的总大小为结构体最宽基本类
5、型成员大小的整数倍,如有需要编译器会在最末一个成员小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节(之后加上填充字节(trailing padding)。)。3、阻塞与非阻塞通信可以将通信分为两种模式:阻塞和非阻塞。在网络编程时,选择通信模式也是一件很重要的事情。对于不同的通信协议,阻塞通信和非阻塞通信有不同的表现。在非阻塞模式下,不同操作系统不能完成的I/O操作返回的错误代码也是不一样的。对于UDP协议而言,因为没有发送缓存,所有UDP协议即使在阻塞模式下也不会发生阻塞。对于面向连接的协议,在连接建立阶段,被动方,在阻塞模式下,没有连接请求到达,则等待连接调用将阻塞直到有连接请求到
6、达;在非阻塞模式下,如果没有连接请求到达,等待连接调用将直接返回;连接发起方总是会使调用它的进程阻塞。阻塞间隔最少等于到达服务器的一次往返时间。通信模式对应用程序的设计方法也用直接的影响。在非阻塞模式下,应用程序不断地轮询查看是否有数据到达,这种方式效率低。可以采用多路复用技术(调用select函数或 poll函数),解决这个问题。在阻塞模式下,进程或线程在执行I/O操作时将被阻塞而不能执行其他工作。因此在单线程应用中不能使用这种模式。在多线程应用中比较适合采用阻塞模式,一个线程被阻塞不影响其他线程的工作 通信模式的选择与操作系统的类型也有关系。例如,在非占先的操作系统中,应用程序应量不要使用
7、阻塞模式工作。4、服务类型的选择5、差错处理 任何应用程序都要进行差错处理,即检查函数返回的调用结果的正确性并作出相应的处理。二、windows多线程线程分为两种类型:一种是工作者线程(worker thread,没有运行消息循环)和用户界面线程(user-interface thread,运行消息循环),windows forms应用程序,主线程是用户界面线程。这两种线程类型MFC库都支持,都基于CwinThread类,均可使用AfxBeginThread函数来创建。访问数据时,使用多线程应用程序比使用单线程应用程序要更加小心。因为在多线程应用程序中同时有多个独立的执行路径正在使用,算法或数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络程序设计 介绍
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内