网络程序设计介绍.ppt

网络程序设计介绍.ppt

ID:52517962

大小:277.05 KB

页数:29页

时间:2020-04-09

网络程序设计介绍.ppt_第1页
网络程序设计介绍.ppt_第2页
网络程序设计介绍.ppt_第3页
网络程序设计介绍.ppt_第4页
网络程序设计介绍.ppt_第5页
资源描述:

《网络程序设计介绍.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、网络程序设计一、winsocket(c/s)二、asp.net(b/s)三、webservice(windows客户端/web服务器)AfxBeginThread(MyWorkerThread,(LPVOID)pString);网络程序设计要考虑的问题计算机网络程序设计因为涉及不同平台之间的信息交互(单点和多点),因此与单机上的程序设计有很大的不同。了解网络程序设计要注意的一些问题,有助于设计、编写高质量的网络应用程序。1、并发环境下的网络编程单进程应用与多进程或多线程的编程有着很大的区别。在多进程或多线

2、程应用程序中,涉及到资源共享、进程或线程间的同步,因而要复杂的多。在多进程或多线程应用中,使用的系统调用或函数必须是可重入的。哪些系统调用或系统函数是可重入的,这在不同的系统中是不同的。在多线程应用中,对调用或函数的使用有很多限制。如,在Solaris操作系统中,在一个线程中关闭另一个线程正在使用的网络端口会导致应用程序“死掉”,而在DigitalUnix中不会。2、异构环境下的网络编程网络通信常常是在多个平台之间进行,因此网络应用程序必须考虑不同平台之间的异构性,特别是不同平台上的数据格式的差异。(1)

3、字节顺序不同的平台(cpu)以不同的方式存放一个二进制。最常见的有两种格式大数字节序是高字节数据存放在低地址处,低字节数据存放在高地址处。一个多字节值0xFECDBA98,内存从地址100开始存放。例:FE

4、CD

5、BA

6、98---->对应地址100

7、101

8、102

9、103小数字节序指低字节数据存放在内存低地址处,高字节数据存放在内存高地址处;例:98

10、BA

11、CD

12、FE---->对应地址100

13、101

14、102

15、103(2)字的长度不同的实现对于相同的数据类型可能有不同的表示长度。如,64位操作系统与32位操

16、作系统中,类型longint的长度是不一样的。对short,int的大小也没有明确的规定。不同的语言也不同。例:java中int是32位;标准c中int是16位。(3)字节定界问题(数据对齐)不同的平台上给结构(struct)或联合(union)打包的方式也是不同的。例:struct{charc;charhh;inti;}s1;语句sizeof(s1)(四字节对齐)在一些编译系统中是8;而在另一些编译系统中可能是12。1)结构体变量的首地址能够被其最宽基本类型成员的大小所整除;2)结构体每个成员相对于结构

17、体首地址的偏移量(offset)都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节(internaladding);3)结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节(trailingpadding)。3、阻塞与非阻塞通信可以将通信分为两种模式:阻塞和非阻塞。在网络编程时,选择通信模式也是一件很重要的事情。对于不同的通信协议,阻塞通信和非阻塞通信有不同的表现。在非阻塞模式下,不同操作系统不能完成的I/O操作返回的错误代码也是不一样的。对于UDP

18、协议而言,因为没有发送缓存,所有UDP协议即使在阻塞模式下也不会发生阻塞。对于面向连接的协议,在连接建立阶段,被动方,在阻塞模式下,没有连接请求到达,则等待连接调用将阻塞直到有连接请求到达;在非阻塞模式下,如果没有连接请求到达,等待连接调用将直接返回;连接发起方总是会使调用它的进程阻塞。阻塞间隔最少等于到达服务器的一次往返时间。通信模式对应用程序的设计方法也用直接的影响。在非阻塞模式下,应用程序不断地轮询查看是否有数据到达,这种方式效率低。可以采用多路复用技术(调用select函数或poll函数),解决这

19、个问题。在阻塞模式下,进程或线程在执行I/O操作时将被阻塞而不能执行其他工作。因此在单线程应用中不能使用这种模式。在多线程应用中比较适合采用阻塞模式,一个线程被阻塞不影响其他线程的工作通信模式的选择与操作系统的类型也有关系。例如,在非占先的操作系统中,应用程序应量不要使用阻塞模式工作。4、服务类型的选择5、差错处理任何应用程序都要进行差错处理,即检查函数返回的调用结果的正确性并作出相应的处理。二、windows多线程线程分为两种类型:一种是工作者线程(workerthread,没有运行消息循环)和用户界面

20、线程(user-interfacethread,运行消息循环),windowsforms应用程序,主线程是用户界面线程。这两种线程类型MFC库都支持,都基于CwinThread类,均可使用AfxBeginThread函数来创建。访问数据时,使用多线程应用程序比使用单线程应用程序要更加小心。因为在多线程应用程序中同时有多个独立的执行路径正在使用,算法或数据或两者都必须注意,可以有一个以上的线程同时使用数据。由于大小和性能原因,M

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。