电子科技大学网络软件设计复习.docx

电子科技大学网络软件设计复习.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二:通信程序基本流程 *掌握四种类型程序最简单。最基本的流程 0 面向连接服务器/客户机,无连接服务器/客户机 面向连接的服务器流程:申请套接字;确定本地端点,填写端点地址;建立 套接字与端点关系;设置为监听模式(服务器模式) ;接受一个连接;完成通信 过程;关闭连接的套接字。 s = socket( …); address = …; bind( s,address …); listen(s); newsock = accept( s ); recv( newsock ); send( newsock ); closesocket( newsock ) 面向连接的客户机流程;申请套接字;确定本地端点,填写端点地址;建立 套接字与端点关系;确定服务器端点;与服务器建立连接;完成通信过程;关 闭套接字。 s = socket( …); c_addr = …; bind(s,c_addr …); s_addr = …; connect(s , s_addr); recv( s ); send( s ); closesocket( s ); )无连接的服务器流程;申请套接字;确定本地端点,填写端点地址;建立端 点与套接字关系;等待接收数据;完成通信过程;关闭套接字 )无连接的客户机流程;申请套接字;确定本地端点,填写端点地址;建立端 点与套接字关系;发送数据;完成通信过程;关闭套接字 *流程中重要的变量 0 套接字标识符 o 缓冲区 流程中具有阻塞功能的函数,通过调试体会阻塞的实际效果 o accept o recv o recvfrom o connnect 实验三:客户服务器模式 验证只有在客户服务器方式才能建立正常通信 对比测试:采用两个客户机,互相之间不能建立连接。 采用两个客户机是否可能有一方建立成功?为什么? 有时能成功建立连接,与系统的 TCP/IP协议版本有关,理论上只有客户 /服务器模式才能通信。TCP/IP2004年新版本中在客户机状态转换中增加了等 待SYN报文的处理,提高了客户机之间建立连接的可能性,增加的这个“等 待”没有违反客户/服务器原则。 服务器例程是否一定要设计为循环等待模式 ?还有其他选择吗?如果不循环可 以吗? 不循环,就只能为一个客户服务,循环起来就能在完成一个通信服务以后 接收下一个连接? 实验四:套接字标识符本地有效 *验证套接字标识符的作用范围仅限于一个进程内 证明方法:在两个不同的进程中,使用相同的套接字标识符可以完成两个 不同的通信? 本实验的两个例程如果与相同的服务器建立连接会怎样 ? 不同进程中使用相同的套接字标识符并不互相影响 ?不同进程使用相同的套接字 ,绑定相同的端口号,是否可以? 不可以,相同的端口号将影响系统对通信身份的确定和区分 通信服务的共享:即如何让两个不同的进程共享一个通信服务 ,即与远方同一 个进程通信? 需要高超手段----对套接字控制(REOPEN,高层还需要设计一个协议, 至少能够区分不同的应用进程。 实验五:套接字接口函数 针对常用的套接字函数进行测试 向连接服务器的各接口函数: socket、bi nd、liste n 、accept、send、recv、 closesocket o 掌握套接字接口函数的基本功能 ?掌握通过去函数返回值判断是否出错的方法 o 掌握通过WSAGetlasterror取得出错类型的方法 o 增加网络程序调试的经验 ?使用的主要测试方法 o 使用异常参数测试:如边界值,越界值等 ?常见的错误: 10038 :在一个非套接字上尝试了一个操作。 10048 :通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 10061 :由于目标计算机积极拒绝,无法连接。 10054 :远程主机强迫关闭了一个现有的连接。 10035 :无法立即完成一个非阻止性套接字操作。 主要的收获 *大多数非AF_INET协议没有得到win sock的支持 *流套接字可以由不同协议支持,但目前是 TCP ?不能再已经有套接字活动的端口上再绑定一个套接字 listen制定个数为0时,也能接受客户连接 Accept虽然可以传入一个端点地址结构给系统,但不能通过它限制只从某个 连接对端接受连接 ?接收时的缓冲区指针必须事先指向一个“实际”可使用的空间,而且缓冲区 大小参数也只能小于实际大小,不能超过。 *发送时的缓冲区也需要遵循同样的原则 不能与INADDR_AN丫地址、广播地址建立连接 Recvfrom 一定要先建立本地半相关,即先确定在哪个 UDP端口上收数据 *如果前一次sendto将数据传送到了无人接收的地方,下一次recvfrom将得到 一个错误返回,类似信件被退回的提示 实验六:网络字节序 *测试与网络字节序有关的函数的功能 htonl

文档评论(0)

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

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

1亿VIP精品文档

相关文档