- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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地址),用以上的二种方法来实现,可能还要通过判断客户输入
您可能关注的文档
- 地铁隧道如何穿越地质断层处精选.ppt
- 城市职能和社会发展关系精选.ppt
- 城市灾害情景下应急案例本体建模与重用精选.pdf
- 城市的功能分区精选.doc
- 城市道路路基工程施工方法精选.doc
- 培养学生对书法的兴趣精选.doc
- 培优复习卷精选.doc
- 培养学生注意力精选.doc
- 城镇生活污水常用处理工艺比选精选.ppt
- 培养良好的沟通能力精选.ppt
- 2024年隧道突发事件处理应急预案(3篇).pdf
- 2024年检验类之临床医学检验技术(士)押题练习试卷A卷附答案 .pdf
- 2024年江苏省招聘社区工作者真题题库及答案 .pdf
- 2024年江西上饶中考地理试题及答案(1).pdf
- 2024必威体育精装版国家开放大学(电大)本科《公共行政学》机考题库及答案.pdf
- 2024版教师资格考试内部题库含答案及解析 .pdf
- 2024年必威体育精装版护士护理三基考试知识题及答案.pdf
- 2024年消防设施操作员之消防设备中级技能题库与答案 .pdf
- 2024河南省教育系统后备干部应知应会题及答案.pdf
- 2024年第一次广东省普通高中学业水平合格性考试数学仿真模拟卷01含详解.pdf
文档评论(0)