- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电子科技大学网络编程课件第六讲——客户软件举例
电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 《计算机网络编程》 第六讲 客户程序举例 电子科技大学计算机学院 客户软件例子特点 封装:connectsock调用 Daytime服务的TCP客户端实现 Time服务的UDP客户端实现 Echo服务的TCP、UDP客户端实现 计算机网络编程 电子科大计算机学院 通过举例子说明上章的概念、算法。 例子的特点: 服务本身代码少,易理解 突出基本算法 说明客户/服务器如何使用系统调用 说明代码长短和服务数量的关系 模块化,过程化:隐藏细节:将复杂的程序分解成一组过程,模块化的程序 网络软件含有很多细节,隐藏细节减少出错机会 重用代码 将依赖操作系统的代码隔离出来,便于移植 计算机网络编程 电子科大计算机学院 每个客户与服务器建立联系必须: 选择协议(UDP或TCP) 查找服务器的机器名 查找所期望的服务并将其映射到协议端口号 分配套接字并与之连接 将这部分工作进行封装,置于某个过程当中,只需一次编码。 socket = connectTCP(machine, service); socket = connectUDP(machine, service); 正确抽象:高级操作,共享代码,减少出错 计算机网络编程 电子科大计算机学院 将所有的底层操作放置到connectsock中 实现connectTCP和connectUDP成为简单调用 计算机网络编程 电子科大计算机学院 int connectTCP(const char *host, const char *service) /* Arguments host -name of host to which connection is desired service –service associated with the desired port */ { return connectsock(host, service, “tcp”); } 计算机网络编程 电子科大计算机学院 int connectUDP(const char *host, const char *service) /* Arguments host -name of host to which connection is desired service –service associated with the desired port */ { return connectsock(host, service, “udp”); } int connectsock(const char *host, const char *service, const char *transport); connectsock:含有所有需要用来分配套接字和连接该套接字的代码,p58 #include 语句 宏定义和变量定义,函数声明,功能说明 函数名称和参数说明 局部变量定义 取得端口号,IP地址,和使用协议号 使用socket得到套接字 使用connect建立连接 返回套接字 计算机网络编程 电子科大计算机学院 复杂条件表达式:函数调用,赋值,比较在一行 memset和memcpy的使用特点 辅助的系统调用:gethostbyname, getprotobyname, getservbyname. errexit: 出错退出 计算机网络编程 电子科大计算机学院 允许用户获得当前的日期和时间 客户程序访问服务器获得信息 格式:weekday,month,day,year,time-timezone 例子:Thursday,February 22,1996 17:3743-PST 可以使用TCP也可以使用UDP实现,协议端口13 计算机网络编程 电子科大计算机学院 对于TCP版本 只要连接到来,服务器就构造包含当前日期时间的文本字符串发送,然后关闭连接。客户不用发送任何数据,发送了也会忽略。 计算机网络编程 电子科大计算机学院 对于UDP版本 服务器收到数据报,格式化当前的日期和时间将结果字符串放置到外发数据报中,发送给客户。激活这个响应的数据报会被丢失。 TCPdaytime.c 的实现说明。P61 #include语句 变量、恒量和函数定义 客户程序主函数main,含参数 int main(int argc, char *argv[]) 对参数的个数进行判断,根据参数数量的不同进行不同的参数处理 如果出错,提示使用方法,退出 调用TCPdaytime( )获得服务器服务 使用connectTCP得到套接字 循环等待服务器的响
您可能关注的文档
- 点亮航路的搏浪男儿.doc
- 烟草行业职业技能鉴定统编教材《烟叶分级工》简介.doc
- 热烈欢迎张家港市高三语文老师莅临指导.ppt
- 热电联产节能分析.doc
- 焦作市食品药品检验所检验用仪器设备采购项目.doc
- 爱情大买卖,一起来晒晒.ppt
- 爱斐堡,美酒与美食的共存.docx
- 爱是最好的教育——谈如何做好小学班主任工作.doc
- 爵士屋:品美酒,赏爵士,玩一把小资调调.docx
- 版式设计的排版和比较.ppt
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
文档评论(0)