基于socket的文件传输软件的设计与实现精选.doc

基于socket的文件传输软件的设计与实现精选.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于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)

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

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

1亿VIP精品文档

相关文档