- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机网络之网尽其用
主讲人:李全龙
本讲主题
Socket编程-服务器软件设计
计算机网络之 网尽其用 主讲人:李全龙 2
4种类型基本服务器
循环无连接(Iterative connectionless)
服务器
循环面向连接(Iterative connection-oriented)
服务器
并发无连接(Concurrent connectionless)
服务器
并发面向连接(Concurrent connection-oriented)
服务器
计算机网络之 网尽其用 主讲人:李全龙 3
循环无连接服务器基本流程
1. 创建套接字
2. 绑定端点地址(INADDR_ANY+端口号)
3. 反复接收来自客户端的请求
4. 遵循应用层协议,构造响应报文,发送给
客户
计算机网络之 网尽其用 主讲人:李全龙 4
数据发送
服务器端不能使用connect()函数
无连接服务器使用sendto()函数发送数据报
retcode=sendto (socket,data,length,flags,destaddr,addrlen);
服务器(UDP)
套接字 缓存中数 指向结构
据字节数 sockaddr_in的指针
存储待发送数 (客户端端点地址)
据缓存的地址 调试或控制选项
地址结构长度
计算机网络之 网尽其用 主讲人:李全龙 5
获取客户端点地址
调用recvfrom()函数接收数据时,自动提取
retcode=recvfrom (socket,buf,length,flags,from,fromlen);
(UDP)服
务器套接字 缓存可用空间 存放源地址
的缓存地址
存放数据报
的缓存地址 调试或控制选项 源地址长度
计算机网络之 网尽其用 主讲人:李全龙 6
循环面向连接服务器基本流程
1. 创建(主)套接字,并绑定熟知端口号;
2. 设置(主)套接字为被动监听模式,准备用于
服务器;
3. 调用accept()函数接收下一个连接请求(通过
主套接字),创建新套接字用于与该客户建立
连接;
4. 遵循应用层协议,反复接收客户请求,构造并
发送响应(通过新套接字);
5. 完成为特定客户服务后,关闭与该客户之间的
连接,返回步骤3.
计算机网络之 网尽其用 主讲人:李全龙 7
并发无连接服务器基本流程
主线程1: 创建套接字,并绑定熟知端口号;
主线程2: 反复调用recvfrom()函数,接收下一个
文档评论(0)