- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五讲 客户软件设计
* * * * * * * * * * * * * * DAYTIME服务 可以使用TCP也可以使用UDP实现 对于TCP版本 只要连接到来,服务器就构造包含当前日期时间的文本字符串发送,然后关闭连接。客户不用发送任何数据,发送了也会忽略。 对于UDP版本 服务器收到数据报,格式化当前的日期和时间将结果字符串放置到外发数据报中,发送给客户。激活这个响应的数据报会被丢失。 针对DAYTIME的TCP客户实现 TCPdaytime.c 的实现说明。P61 #include语句 变量、恒量和函数定义 客户程序主函数main,含参数 int main(int argc, char *argv[]) 对参数的个数进行判断,根据参数数量的不同进行不同的参数处理 如果出错,提示使用方法,退出 调用TCPdaytime( )获得服务器服务 使用connectTCP得到套接字 循环等待服务器的响应,并送到标准文件显示 针对DAYTIME的TCP客户实现 TCPdaytime.c 的实现说明。P61 #include语句 变量、恒量和函数定义 客户程序主函数main,含参数 int main(int argc, char *argv[]) 对参数的个数进行判断,根据参数数量的不同进行不同的参数处理 如果出错,提示使用方法,退出 调用TCPdaytime( )获得服务器服务 使用connectTCP得到套接字 循环等待服务器的响应,并送到标准文件显示 从TCP连接中进行读 TCP提供流式服务,不保持记录边界 发送应用程序和接收应用程序分开了 发送2个64字节,可能接收1次或者3次完成 一次TCP连接的读操作调用返回的字节数依赖于下层互联网络数据报的大小,可用的缓存空间,以及穿越网络所遇到的时延。 必须要重复地调用recv(或者read),直到获得所有的数据 TCP的流服务不能保证按写入时相同的数据块交付数据 TIME服务 允许一台机器从另外一台机器获得日期和时间。 由于存在不同的时区,所有的时间日期信息必须用国际标准时间:UCT或UT 服务器应答前将本地时间转化为标准时间 客户收到应答时,将国际标准时间转化为本地时间。 TIME协议规定由32bit的整数来表示 从1900年1月1日午夜为起点的秒数 用于一台计算机使用另外一系统时钟来设置起事件 访问TIME服务 TIME服务使用端口37 可以使用TCP协议 使用TCP的TIME服务器利用连接的出现激活输出,类似DAYTIME服务。 使用TCP的客户不用发送任何数据 也可以使用UDP访问TIME服务 客户发出包含单个数据报的请求 服务器从传入的数据报中取出地址和端口号 服务器将当前时间编码为一个整数,使用上述地址和端口号发回给客户 精确时间和网络时延 由于网络时延,客户收到的时间慢了 尽管有更加复杂的协议来处理时钟同步 TIME协议因为简单,在局域环境中,在某些环境下,还是使用很多。 改进TIME协议提高精确性 计算服务器到客户的网络时延近似值 客户计算从客户到服务器,再从服务器到客户的往返时延,取其一半作为时延的近似值。 针对TIME服务的UDP客户 UDPtime.c 程序说明:p65 变量定义 程序参数处理 建立UDP套接字 发送一个数据报 读取数据报 字节顺序转换, 换算成unix的时间起点 调用ctime转换成为可以读出的时间格式 ECHO服务 ECHO服务器返回从客户收到的所有数据 用户网络管理员测试可达性,调试协议软件,识别选路问题等 TCP ECHO服务:接收连接请求,从连接中读取数据,在该连接上将数据写回。直到客户终止传送。 UDP ECHO服务:接收整个数据报,根据数据报指明的端口号和地址,返回整个数据报 针对ECHO的TCP客户 TCPecho.c p66 客户主函数:main( ) 处理传入参数 TCPecho( ) 打开连接以后,进入循环 读出每行输入 通过TCP连接发送给ECHO服务器 读取返回的数据并打印 读出过程是一个循环,按照字符数量计数 完成所有的行输入后,程序退出 针对ECHO服务的UDP客户 UDPecho.c p67 同前面的TCP版本类似 读出返回数据的过程不同,只需要读出一次 UDP客户要么收到了由服务器返回的整个行,要么什么都没有收到。 除非出现差错,否则每次调用read都返回整个行 小结 过程抽象:易于维护,隐藏细节,移植 构造两个过程的例子: connectTCP connectUDP 给出几个客户应用的例子 DAYTIME:的到当日可读格式的时间 TIME:得到32比特整数形式的时间 ECHO: 测试网络联通性 * * * * * * * * * * * * *
您可能关注的文档
- 平面的基本性质与推论讲课.ppt
- 2016复习平面;直线的关系.ppt
- 加载虚拟IP发送ARP包.docx
- WINSOCK API 网络编程入门.doc
- java-socket多线程.doc
- 《计算机网络》实验报告格式.doc
- udp socket 通信案例.doc
- 超小型循环式服务器-原生socket编程.docx
- window基于TCP、UDP通信.doc
- tcp和udp的区别,测试实例.doc
- 介绍空白页组成.pdf
- 2025年云南三鑫职业技术学院单招语文测试模拟题库学生专用.docx
- 2025年心理咨询师考试卷及完整答案【各地真题】.docx
- 2025年云南省大理白族自治州选调生考试(行政职业能力测验)综合能力题库完美版.docx
- 2025年云南省丽江地区行政职业能力测验模拟试题一套.docx
- 2025年云南交通职业技术学院单招语文测试模拟题库a4版.docx
- 2025年期货从业资格之期货投资分析考试卷完整答案.docx
- 2025年二级建造师之二建机电工程实务考试卷一套.docx
- 2025年云南省西双版纳傣族自治州选调生考试(行政职业能力测验)综合能力题库新版.docx
- 2025年咨询工程师之工程项目组织与管理考试卷附完整答案【名师系列】.docx
最近下载
- 医院手术分级目录.xls VIP
- 《增强小学生英语口语能力的实践与研究》结题报告.docx VIP
- 糖尿病饮食的实施糖尿病饮食治疗.pptx VIP
- (高清版)-B-T 34590.1-2022 道路车辆 功能安全 第1部分:术语.pdf VIP
- 餐饮业员工流失现状及解决对策研究——以季季红餐饮管理有限公司为例.doc VIP
- 电泳电压、时间与膜厚关系的试验与探讨.pdf VIP
- 材料电化学教学(浙大)电化学测试基础知识.pdf VIP
- 银行合规内控管理体系建设项目实施建议书.docx VIP
- 天线与电波传播天线基础知识.pptx VIP
- 2025年质量员-土建方向-通用基础(质量员)证考试题库及答案.pdf VIP
文档评论(0)