网络软件设计16——提高篇.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * 多协议服务器 多协议服务器 目的 减少服务器数量,靠一个服务器提供多协议服务 一个循环的多协议服务器的进程结构: 服务器 用于UDP 请求的套接字 用于TCP 请求的套接字 用于TCP 请求的套接字 服务器进程 操作系统 * 多协议服务器 一个循环的、多协议服务器至多打开三个套接字 最初只打开一个UDP套接字和TCP套接字,以接受数据报和连接请求 当一个TCP连接请求到达TCP套接字后,accept一个新的连接,创建一个新套接字,并在新的套接字上与客户机通信 通信结束,服务器关闭第三个套接字,并等待另两个被激活 * int main (int argc,char * argv[ ] ) { int tsock; int usock; fd_set rfds; tsock = socket(PF_INET,SOCK_STREAM,0); 循环多协议服务器实现 usock = socket(PF_INET,SOCK_DGRAM,0); while(1) FD_SET(usock,rfds); … … { FD_ZERO(rfds); FD_SET(tsock,rfds); select(nfds,rfds,NULL,NULL,timeout); … … If(FD_ISSET(tsock,rfds)){ nsock = accept(tsock,…); recv(nsock,…); send(nsock,...); … } If(FD_ISSET(usock,rfds)){ recvfrom(nsock,…); sendto(nsock,…); … } … … 同样可以实现并发的多协议服务器 网络软件设计16——提高篇教材 谢谢 * * * * * * * * * * * * * * * * * * * * * * * * * * * * 段景山 网络软件设计(提高篇) 网络程序数据结构设计 网络程序接口设计 网络程序分析 客户与服务器设计 制作 主讲 段景山 * 数据结构设计 一般的通信程序中可能涉及的数据结构 套接字管理队列 所有的套接字都应管理起来。包括对端的信息 监听(主)套接字应与从套接字分开管理 管理队列的结构应方便查询和处理 通信数据缓冲区的管理 缓冲管理的目标之一:使程序应用功能与通信功能脱钩,即速度匹配。应用程序不需要关心通信部分是否能跟上进度。 单缓冲?双缓冲?循环的环状缓冲?缓冲池? 模块间通信数据的传递:指针?拷贝? 涉及系统内存的管理和使用方法 PDU的设计 * PDU的设计 协议头的实现 Ver HLen TOS Total Length Identifier Flags Frag Offset TTL Protocol HCS Source IP Address Destination IP Address IP Options(if any) Padding Data 0 4 8 16 19 31 * PDU的设计 struct iphdr { UCHAR version; /* IP version number ,header length??? */ UCHAR tos; /* Type of service */ USHORT length; /* Total length */ USHORT id; /* Identification */ unsigned int congest:1;/* Congestion experienced bit (exp) */ unsigned int df:1; /* Dont fragment flag */ unsigned int mf:1; /* More Fragments flag */ USHORT Offset:13; /* Fragment offset in bytes */ UCHAR ttl; /* Time to live */ UCHAR protocol; /* Protocol */ USHORT checksum; /* Header checksum */ ULONG source; /* Source address */ ULONG dest; /* Destination address */ UCHAR optlen; /* Length of options field, bytes */ UCHAR options[IP_MAXOPT]; /* Options field */ }; * PDU与接口 P

文档评论(0)

yaocen + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档