- 1、本文档共18页,可阅读全部内容。
- 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的文件传输软件的设计与实现
哈尔滨工业大学课程结业报告
姓 名:
学 号:
所学专业:
课程名称:
提交日期:
目录
1.基于TCP/IP及UDP的通信传输概述 2
2.系统体系结构………………………………………………………………………3
2.1面向TCP连接系统调用过程 4
2.2面向UDP连接系统调用过程 5
3.系统要求与功能实现 5
3.1公共类设计 5
3.1.1 IP地址操作类 5
3.1.2 DNS相关类 6
3.2 TCP文件传输 7
3.2.1 服务器端 7
3.2.2 客户端 8
3.3 UDP文件传输 9
3.3.1 服务器端 10
3.3.2 客户端 11
3.4线程池 11
3.5其它 12
4.试验结果 12
5.思考 14
6.结论和收获 15
基于socket套接字的文件传输软件的设计与实现
概述
TCP/IP(Transmission Control Protocol/Internet Protocol)的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。
图一 TCP/IP体系结构
Socket通常也称作套接字,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过套接字向网络发出请求或者应答网络请求。Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。在TCP/IP网络中两个进程间的相互作用的主机模式是。在操作过程中采取的是主动请示方式:首先服务器方要先启动,并根据请示提供相应服务: 1、打开一通信通道并告知本地主机,它在某一个公认地址上接收客户请求2、等待客户请求到达该端口3、接收到重复服务请求,处理该请求并发送应答信号4、返回第步,等待另一客户请求5、关闭服务器。客户:1、打开一通信通道,并连接到服务器所在主机的特定端口2、向服务器发送服务请求报文,等待并接收应答;继续提出请求……3、请求结束后关闭通信通道并终止。面向系统调用时序图
图二 面向TCP的系统时序图
2.2面向系统调用时序图
??????IPAddress提供4个只读字段??????Any?? 用于代表本地系统可用的任何IP地址
??????Broadcase 用于代表本地网络的IP广播地址
??????Loopback 用于代表系统的回送地址??????????None 用于代表系统上没有网络接口
其中IPAddress.Any最常用可以用来表示本机上所有的IP地址,这对于socket服务进行侦听时便使用,不用对每个IP进行侦听了。
2、IPEndPoint类
通过二种构造方法来创建IPEndPoint类:??a、IPEndPoint(long address, int port)??b、IPEndPoint(IPAddress address, int port)??它有四个属性:?? Address
??????AddressFamily
??????Port
??????MaxPort
??????MinPort
IPEndPoint是一个IP地址和端口的绑定,可以代表一个服务,用来Socket通讯。
3.1.2 DNS相关类
DNS类有四个静态方法,来获取主机DNS相关信息:
1、GetHostName()?
通过Dns.GetHostName()可以获得本地计算机的主机名
2、GetHostByName()
根据主机名称,返回一个IPHostEntry 对象:
IPHostEntry GetHostByName(string hostName)。其中IPHostEntry把一个
DNS主机名与一个别名和IP地址的数组相关联,包含三个属性:
?? AddressList:一个IPAddress对象的数组
??????Aliases:一个字符串对象数组
??????HostName:一个用于主机名的字符串对象
3、GetHostByAddress()
类似于GetHostByName(),只不过这里的参数是IP地址,而不是主机名,也返回一个IPHostEntry对象。
IPHostEntry GetHostByAddress(IPAddress address)
IPHostEntry GetHostByAddress(string address)4、Resolve()????当不知道输入的远程主机的地址是哪种格式时(主机名或IP地址),用以上的二
文档评论(0)