文档详情

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

发布:2017-06-08约6.06千字共18页下载文档
文本预览下载声明
哈尔滨工业大学课程结业报告 姓 名: 学 号: 所学专业: 课程名称: 提交日期: 目录 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地址),用以上的二种方法来实现,可能还要通过判断客户输入
显示全部
相似文档