ImageVerifierCode 换一换
格式:DOC , 页数:10 ,大小:95KB ,
资源ID:1822118      下载积分:8 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/1822118.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(基于TCP协议的网络通信设计与实现.doc)为本站上传会员【w****g】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于TCP协议的网络通信设计与实现.doc

1、 基于TCP协议下的简单网络通信与实现 摘要 本文设计并实现了在Windows下基于局域网内的TCP协议的简单即时通信系统,系统采用TCP/IP模式,底层通信通过SOCKET套接字接口对端口进行监听,当有消息发送来时,做出相应的处理,服务器负责客户端的登录验证。本文首先讨论了套接字创建、绑定、将套接字设置为监听模式、接受信息和关闭套接字从而实现简单的网络通信,然后阐述了如何使用C++来模拟基于TCP协议下的客户服务方式的网络通信过程。由于在此设计中主要是使用C程序的形式来模拟TCP协议的传输方式,从而实现面向对象的可靠传输,在这种情况下无需对IP协议进行讨论。

2、 关键字:套接字 TCP协议 目录 1、引言………………………………………………………………………………….... 1.1、课程背景............................................................................................................... 1.2、相关技术介绍...............................................................

3、 1.3、TCP协议………………………………………………………………………… 1.4、TCP——传输控制协议…………………………………………………………. 1.5、套接字…………………………………………………………………………… 2、系统框架......................................................................................................................... 3、系统设计流程图..

4、 4、系统的实现..................................................................................................................... 4.1、服务器端程序.......................................................

5、 4.2、客户端程序.................................................................................................................. 结论…………………………………………………………………………………… 参考文献………………………………………………………………………………

6、 1、引言 1.1、课题背景 TCP/IP起源于美国国防部高级研究规划部署(DARPA)的一项研究计划——实现若干台主机的相互通信。现在,TCP/IP已成为Internet上通信的工业标准。 因为OSI模型的七层参考模型比较复杂,并且在实际运用中难以实现,所以目前应用比较多的是TCP/IP模型,该模型包括4个层次: 应用层 运输层 网络层 网络接口层 对于TCP/IP网络层次模式,核心协议是网络层的IP协议,和运输层的TCP协议,这也是为何成为TCP/IP协议的缘由。 1.2、相关技术介绍 NET开发平台及C#.NET开发语言 NET框架是Micro

7、soft公司推出的一种全新的开发平台,提供了统一的、面向对象并且可以扩展的编程类库和完善的集成开发环境,大大简化了应用程序的开发过程,并且具有良好的移植性和安全性。 微软为了推行.NET战略,特别为.NET平台设计了一种语言——C#。C#是由C和C++派生而来的一种“简单、流行、面向对象、类型安全”的程序设计语言,其综合了Visual basic的高效率和C++的强大功能,然而更多的人感觉C#更类似JAVA。事实上C#融合了大量的JAVA思想,C#是.NET的关键性语言,它是整个.NET平台的基础。与C#相比,.NET所支持的其它语言显然是配角,包括VC++.NET在内。但是微软并没有打算放

8、弃VC++.NET,相反,微软对VC++.NET有着另一番独特的打算,VC++.NET的定位与C#不完全重合,VC++.NET应用范围仍强于C#,这一点无论对微软公司还是软件业应用现状都非常重要。 可见VC++.NET在NET框架中已经退化成了底层的语言了,就像C++之前的标准C语言一样,以后将只有开发底层或桌面程序的程序员使用它。它虽然仍旧强大,但是已经不是主流,而主流就是C#语言。 1.3、TCP协议 TCP/IP网络协议 协议是对等的网络实体之间通信的规则,可以简单地理解为网络上各计算机彼此交流的一种“语言”。网络通信协议设计的基本原则是层次化,层和协议的集合被称为网络体

9、系结构。相邻层之间的接口定义了下层向上层提供的基本操作和服务,下层向上层提供的服务分两种形式:面向连接的服务和无连接的服务。 计算机网络中已经形成的网络体系结构主要有两个:OSI参考模型和TCP/IP参考模型。TCP/IP参考模型是因特网(Internet)的基础。和OSI的7层协议相比,TCP/IP协议只有4个层次。通常说的TCP/IP是一组协议的总称,TCP/IP实际上是一个协议族,包括100多个相互关联的协议,其中IP(Internet Protocol, 网际协议)是网络层最主要的协议;TCP(Transmission Control Protocol,传输控制协议)和UDP(Use

10、r Datagram Protocol,用户数据报协议是传输层中最主要的协议),一般认为IP、TCP、UDP是最根本的三种协议,是其他协议的基础。 1.4、TCP——传输控制协议 面向连接的通信可以使用可靠通信,在这时候,第四层协议发送数据接收方的确认,如果未收到数据或者数据被损坏,则请求重新传输。TCP协议就使用这种可靠通信。 使用TCP协议的应用层协议包括HTTP、FTP、SMTP和Telnet等。 TCP要求在发送数据之前必须打开连接。服务器应用程序必须执行一个称作被动打开(passive open)的操作,以利用一个已知的端口号创建一个链接,这是,服务器并不是对网络进行

11、呼叫,而是侦听并等待引入的请求。客户应用程序必须执行一个主动打开(active open),为此,它向服务器应用程序发送一个同步序列号(SYN)以标识连接。客户应用程序可以将动态端口号作为本地端口使用。服务器必须向客户发送一个确认(ACK)以及服务器的序列号(SYN)。随后,客户回复一个ACK,这样就建立了链接。 现在可以发送和接收消息了。接收消息后,总是返回ACK消息。如果在收到ACK之前发送方已经超时,则消息将被放到重发队列中以再次发送。 由于它的握手机制,所以TCP协议比较复杂并且费时,但此协议在处理数据时对数据包的传送有保障,从而使得在应用程序协议中不需要再包括该功能。

12、 1.5、套接字 套接字这个术语并没有定义某个协议:它具有两层含义,但两者都与一个协议相关。第一个含义是套接字编程API,它最初由伯克利大学为BSD UNIX而创建。BSD套接字在经过修改后被用作Windows环境的编程接口(并且被命名为WinSock)。WinSock API被包装在System.Net.sockets命名空间的.NET类中。Windows Sockets 是一个独立于协议的编程接口,用于编写网络应用程序。 套接字的第二层含义表示一个用于在进程间进行通信的终端。在TCP/IP中,每个终端都与一个IP地址和一个端口号绑定。我们必须对流式套接字和数据报套接字这两种类型进行区

13、分。流失套接字用TCP/IP协议来使用面向连接的通信;另一方面,数据报套接字用UDP/IP来使用无连接通信。 2、系统框架 3、系统设计 4、系统的实现 4.1、服务器端程序 #include #include Void main() { //加载套接字库 WORD wVersionRequested; WSADATA wsaDdata; Int error; wVersionReque

14、sted=MAKEWORD(1,1); err=WSAStarup(wVersionRequested,&wsaDATA); if(err!=0) { return; } If(LOBYTE(wsadata.wVersion)!=1||HIBYTE(wsadata.wVersion)!=1) { WSACleanup(); Return; } //创建用于监听的套接字 SOCKET sockSrv=socket (AF-INET,SOCK-STREAM,0); SOCKADDR-IN addrSrv; addrSrv.sin-addr.S

15、un.S-addr=hotonl(INADDR-ANY); addrSrv.sin-family=AF-INET; addrSrv.sin-port=htons(6000) //绑定套接字 Bind(sockSrv ,(SOCKADDR*)&addrSrv ,sizeof(SOCKADDR)); //将套接字设为监听模式,准备接收客户请求 Listen(sockSrv,s); SOCKADDR-IN addrClient; Int len=sizeof( SOCKADDR ); While(1) { //等待客户请求到来 SOCKET soc

16、kConn=accept(sockSrv ,( SOCKADDR*)&addrClient ,&len); Char sendBuf(100); Sprintf(sendBuf ,)”Welcom %s to http://www.sunxin.org” ,ine-ntoa(addrClient.sin-addr)); //发送数据 Send(sockConn ,sendbuf ,strlen(sendBuf)+1,0); Char recvBuf(100); //接受数据 Recv(sockConn,recvBuf ,100 ,0); //打印接受的

17、数据 Printf(“%s\n”,recvBuf); //关闭套接字 Closesocket(sockConn); } } 4.2、客户端程序 #include #include Void main() { //加载套接字库 WORD wVersionRequested; WSADATA wsaDdata; Int error; wVersionRequested=MAKEWORD(1,1); err=WSAStarup(wVersionRequested

18、wsaDATA); if(err!=0) { return; } If(LOBYTE(wsadata.wVersion)!=1||HIBYTE(wsadata.wVersion)!=1) { WSACleanup(); Return; } //创建套接字 SOCKET sockSrv=socket (AF-INET,SOCK-STREAM,0); SOCKADDR-IN addrSrv; addrSrv.sin-addr.S-un.S-addr=hotonl(INADDR-ANY); addrSrv.sin-family=AF-INE

19、T; addrSrv.sin-port=htons(6000) //向服务器发出连接请求 Connect (sockClient ,(SOCKADDR*)&addrSrv ,sizeof(SOCKADDR)); //接受数据 Char recvBuf[100]; Recv(sockClient , recvBuf ,100 ,0); Printf(“%s\n”,recvBuf); //发送数据 Send(sockClient ,” This is lisi ”, strlen(“This in lisi”)+1 ,0); //关闭套接字 Close

20、socket(sockConn); WSACLeanup() ; } } 结论 在此设计中仅仅适合于数量少的计算机间的通信,其中一个缺陷是,当多台计算机同时进行通信时,会照成网络拥塞,可能导致消息传输中丢失,此设计没有做出解决的方案,但有这样的方案猜想,为了解决拥塞问题,可以使用慢开始、拥塞避免、快从传和快恢复算法,进而改进此设计,但是这会涉及大量的数学运算。此设计还存另一个缺陷,没有实现可靠传输,TCP协议的可靠传输机制是用字节的序号进行传输控制,而这里仅是监听端口是否有数据发送,如果有,就接收,没有就继续监听。 参考文献 [1]孙鑫,VC++深入详解[M]北京:电子工业出版社,2012.7:528-546 [2]谢希仁,计算机网络[M]北京:电子工业出版社,2008.1:180-210

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服