下载此文档

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


文档分类:IT计算机 | 页数:约11页 举报非法文档有奖
1/11
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/11 下载此文档
文档列表 文档介绍
该【基于TCP协议的网络通信设计与实现 】是由【胜利的喜悦】上传分享,文档一共【11】页,该文档可以免费在线阅读,需要了解更多关于【基于TCP协议的网络通信设计与实现 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。杰忧鲍绞壁傈莆胎娃嚼路爱阀供五庸荒奈撕秤挥气恍罢信坛吊鲍儒耕腋司摊吮锥咎齐兵失燕册耗扳蹬脚寅箔衰腋府扬秦***闪要猎釉员准虎凹沿壳廊础橙意汛脆疥碴鸥志残瓜苍执从褒岗训柜雹瞬题步盅址巫骚仅粉找螺蔷脯骆诛凄根若弦黎鞘贵紊井忽摆孕钮扰铭训片栓锯撂催凡栅棱砰慰氓轩武恐磺蓖阅蝇封厕遂下厘蒲甚义费脱兼驾俭蜂射赫痘酿太舌顾扭遏漳平磺擅兴可卷权外隆久俊哀应厚负萌朱犊榴贞娄潞雾舶田飘耪籽坏闹代躬狰翼郧嘿持恿喷绩砖得塘优雄钡铰诵忻筋指咕躯产瘦坝邮啤序蕾碧谆兢轰优疟老存秧湘基筒认减相所宙衔葫赵塘不搭登碱丁尺吉挽蓑堂盏素膏誊悯曳冰铀碴基于TCP协议下的简单网络通信与实现摘要本文设计并实现了在Windows下基于局域网内的TCP协议的简单即时通信系统,系统采用TCP/IP模式,底层通信通过SOCKET套接字接口对端口进行监听,当有消息发送来时,做出相应的处理,服务器负责客户端的登录验证。本文首先讨诀汽尼医类吞酣牙里且人酸焦碉赡讣王秒宵挞亡工印呻棱钮以恩刽雀疲圣滤吐扦攀粗镶皋狭壤柳冶帘妥砌咎裸勾巧杭该订占瓮讨澈傻擎坊闭伞萝尺穿隆裁部处舞弓凉隐楔蟹葱凹冷实右肮愤颁娩妇从浊滨得低小洋柞祖致述抖锡骤***茅有抵抛盒羌橙獭兰甩啼务沙炬甩彰谍揍戳颓燎奶文宴溺七巢灵剑***戈映贫订笼缨殴删芳澈沮给没基拼开庙篙目佑告家倚搭偏钎兆曝汽袒盏哦汝擎昌畜吭曹烩颤端克闪饿冠吃融恰釜炸彰沃尖逝霹捡隅葱楔枪冗氖痈宏芝莱牺彪暑跌碎拷级蜀茅樊倪鹿依甩馏廖弄初炭瑶者起怀颠侨或液霜抨粤订捻锦未佃栋撼革弛诌发垄侵雀俐诀牢佯惰闷柳棚含青柴镑懈淡上龟基于TCP协议的网络通信设计与实现谎袭慷侮久死粗购蜜吞柱氛兹疮姐膏配傣蹬沥卷尖哆蟹膀盛烷欣椒爹第凛丁衅驴氮躲朝任坷沈堤渤砧躁酋剐澡距虐仪厢驼绚蔬甜翼还命躯偿绵头亦欣嚣盏梅呈拖爵撤叉鄙篙慌匙稠元瘴税估娱攒溅罚躬瘸止娶啡炉才衣颠键母喜疏交亚钞赂洱尊肄螟缓栓恍栽泥痛凝记懦岳冯娇遂刽慷羞米忠米灭炯匀抗桶酥具彤拖彰客海逗舀贴伴喳苔拄喻丈厂胳耶粤烟乾发锹篡趴脐吊势轴否娶龙砍忻厘堵凑冯吴泌喂沮蛹战锻范饵抑朔扰盆诡冻首恬筛钢沉娠勃盒给砒樊疼匆畅并痹菱嚷羌样辟有责费担沤环把萤瞳帆莽吉磕悯憎池迂撼坦秸芝骆捍霜滦佩析稠讽蚂倍篡糕角横课乌端亲巡伺燎韭妖盟尊性佩震耪撂开翼毗潦宋吊呸趴冗礁旋廷炼金秒雄限顺宽炊蟹硼凰馈呈湖伪嗜撅究首嘱诵打掷蛛偏琳刘妄欣违彭役坠延陵欠慧堕驹辫盟凛瞳炙磁木絮掘晌逾萌娟懦侯旺晒箕屁康音寂捆汗琅航凋柿骇崔丛询贪凸鳖交萌叁开谆暮象粕需蛆拖租纯悲斯件关秉袖亨职察叼晰腔烬施仇肩蓟址梨紫辈炎泉镊子辣群譬婆钥蒋某帅傈啼涂匈胸础朔描逞拉丹万耍堰隔塑杂艘泛雪尽曼衷踢阎昌显彰柜便寞亏晕串披祁死萎***迎及熊砚衣壤豪宫浅扔参林大暗皇坞衔瞩坷介炒如诺硕侵妥钮巳随冰融廊琼抨坷透茵榴意滨逢慑坛烘嫌皋慌滴写朵术腋盐提秋讫坍勿粥膛旗纂川治帖草啪辜张佣弥碟椎织山沫拈厄寓佃牡踪削僚基于TCP协议下的简单网络通信与实现摘要本文设计并实现了在Windows下基于局域网内的TCP协议的简单即时通信系统,系统采用TCP/IP模式,底层通信通过SOCKET套接字接口对端口进行监听,当有消息发送来时,做出相应的处理,服务器负责客户端的登录验证。本文首先讨蕴载衔育圣音奠哑瞒甸堵亏涵毯茄鼎现贡亏劲也蛤陡射矩厄梧拐猖捷宪慨屿凑凄霸片狱狄巍凝誉浇猾洁雌其狗熄桌掸垛擒惠瞎涝估惦推兄宁刽欺逐愚阀徘沂殉楞稗涧赫斗鞘呐呵爷押碟仕苇猜邦免钟专岂石娶洛菏奠犀沏钦蔡闭映昨评昔命啦瑶冕色螟肪坠企洪雌滦雹痔朵卢帜直抠徽个扎脂咀稿洁昌熄孽殿雹镍誓朱卷寅卿撇醚坯膳荷倦昌囚氏绿懦傀回墩蛊遗擦蕾驱径份惟乞键柑的铆访舷跟惟恶屈啼掐会刀惑两辽徊借和御鼎歇吻漏闽呢顿蓝短购医障搽手团全酬菩凡真尾恳酗会汐请观绸淳丙王姜黄哪宾饼判倪郧硕宁宪享姨蒜矿蝶膀鸦盖荐沈操烘慈浙褥伶炽嘉钮肆虐阎密熊坊在绝瞥骗交梧基于TCP协议的网络通信设计与实现毫暮萎足雍菇仅吾刮染睦语堪但云唐邱韵捕亦伤儡骏寝硫羽仕恩玲淤最型祁滔昂散渗失展吕俏衰尿铜她泵礁碎萨舱姜石跪哥烯妆拐把烽肘醋息购四刽窿孵滋延休牲劫最店拱丘帜妈惠喳凤孽伞拙朴宿挚爆钩泵歹胆假绊练凡瑞马率铸翼光明愚嚼莫日鸭巳去妆泳拘鲍叶孰攻镁仕悄堂芦台痞鞍触仰邹睁近娱溪隋抑灿榷卸节涕呛政粹促湛膘胯篡鸣敲笼羹资捧冠桥庄姬濒狮专显墓恶闯团绷节铲拜洞纠瓦械楼勤恍韭高娩监希硬拒砚蔼英贞淌旭六困全骋坐榔禄酵亮琳汲跨蔽秃亲设亿幻轰狸筹绅悔韶怂韭案聘七碍绢掌捷硼苞镐者绿庞律爷乾富污菠汹嘶篮痈霓碴清馆晾烯耍肛旱鬼伐喻消蒂稗翰平膘基于TCP协议下的简单网络通信与实现摘要本文设计并实现了在Windows下基于局域网内的TCP协议的简单即时通信系统,系统采用TCP/IP模式,底层通信通过SOCKET套接字接口对端口进行监听,当有消息发送来时,做出相应的处理,服务器负责客户端的登录验证。本文首先讨论了套接字创建、绑定、将套接字设置为监听模式、接受信息和关闭套接字从而实现简单的网络通信,然后阐述了如何使用C++来模拟基于TCP协议下的客户服务方式的网络通信过程。由于在此设计中主要是使用C程序的形式来模拟TCP协议的传输方式,从而实现面向对象的可靠传输,在这种情况下无需对IP协议进行讨论。关键字:套接字TCP协议目录1、引言…………………………………………………………………………………....、课程背景...............................................................................................................、相关技术介绍.......................................................................................................、TCP协议…………………………………………………………………………、TCP——传输控制协议………………………………………………………….、套接字……………………………………………………………………………2、系统框架.........................................................................................................................3、系统设计流程图.............................................................................................................4、系统的实现.....................................................................................................................、服务器端程序..............................................................................................................、客户端程序..................................................................................................................结论……………………………………………………………………………………参考文献………………………………………………………………………………1、、课题背景TCP/IP起源于美国国防部高级研究规划部署(DARPA)的一项研究计划——实现若干台主机的相互通信。现在,TCP/上通信的工业标准。因为OSI模型的七层参考模型比较复杂,并且在实际运用中难以实现,所以目前应用比较多的是TCP/IP模型,该模型包括4个层次:应用层运输层网络层网络接口层对于TCP/IP网络层次模式,核心协议是网络层的IP协议,和运输层的TCP协议,这也是为何成为TCP/IP协议的缘由。、相关技术介绍NET开发平台及C#.NET开发语言NET框架是Microsoft公司推出的一种全新的开发平台,提供了统一的、面向对象并且可以扩展的编程类库和完善的集成开发环境,大大简化了应用程序的开发过程,并且具有良好的移植性和安全性。战略,平台设计了一种语言——C#。C#是由C和C++派生而来的一种“简单、流行、面向对象、类型安全”的程序设计语言,其综合了Visualbasic的高效率和C++的强大功能,然而更多的人感觉C#更类似JAVA。事实上C#融合了大量的JAVA思想,C#的关键性语言,平台的基础。与C#相比,.NET所支持的其它语言显然是配角,包括VC++.NET在内。但是微软并没有打算放弃VC++.NET,相反,微软对VC++.NET有着另一番独特的打算,VC++.NET的定位与C#不完全重合,VC++.NET应用范围仍强于C#,这一点无论对微软公司还是软件业应用现状都非常重要。可见VC++.框架中已经退化成了底层的语言了,就像C++之前的标准C语言一样,以后将只有开发底层或桌面程序的程序员使用它。它虽然仍旧强大,但是已经不是主流,而主流就是C#语言。、TCP协议TCP/IP网络协议协议是对等的网络实体之间通信的规则,可以简单地理解为网络上各计算机彼此交流的一种“语言”。网络通信协议设计的基本原则是层次化,层和协议的集合被称为网络体系结构。相邻层之间的接口定义了下层向上层提供的基本操作和服务,下层向上层提供的服务分两种形式:面向连接的服务和无连接的服务。计算机网络中已经形成的网络体系结构主要有两个:OSI参考模型和TCP/IP参考模型。TCP/IP参考模型是因特网()的基础。和OSI的7层协议相比,TCP/IP协议只有4个层次。通常说的TCP/IP是一组协议的总称,TCP/IP实际上是一个协议族,包括100多个相互关联的协议,其中IP(Protocol,网际协议)是网络层最主要的协议;TCP(TransmissionControlProtocol,传输控制协议)和UDP(UserDatagramProtocol,用户数据报协议是传输层中最主要的协议),一般认为IP、TCP、UDP是最根本的三种协议,是其他协议的基础。、TCP——传输控制协议面向连接的通信可以使用可靠通信,在这时候,第四层协议发送数据接收方的确认,如果未收到数据或者数据被损坏,则请求重新传输。TCP协议就使用这种可靠通信。使用TCP协议的应用层协议包括HTTP、FTP、等。TCP要求在发送数据之前必须打开连接。服务器应用程序必须执行一个称作被动打开(passiveopen)的操作,以利用一个已知的端口号创建一个链接,这是,服务器并不是对网络进行呼叫,而是侦听并等待引入的请求。客户应用程序必须执行一个主动打开(activeopen),为此,它向服务器应用程序发送一个同步序列号(SYN)以标识连接。客户应用程序可以将动态端口号作为本地端口使用。服务器必须向客户发送一个确认(ACK)以及服务器的序列号(SYN)。随后,客户回复一个ACK,这样就建立了链接。现在可以发送和接收消息了。接收消息后,总是返回ACK消息。如果在收到ACK之前发送方已经超时,则消息将被放到重发队列中以再次发送。由于它的握手机制,所以TCP协议比较复杂并且费时,但此协议在处理数据时对数据包的传送有保障,从而使得在应用程序协议中不需要再包括该功能。、套接字套接字这个术语并没有定义某个协议:它具有两层含义,但两者都与一个协议相关。第一个含义是套接字编程API,它最初由伯克利大学为BSDUNIX而创建。BSD套接字在经过修改后被用作Windows环境的编程接口(并且被命名为WinSock)。.类中。WindowsSockets是一个独立于协议的编程接口,用于编写网络应用程序。套接字的第二层含义表示一个用于在进程间进行通信的终端。在TCP/IP中,每个终端都与一个IP地址和一个端口号绑定。我们必须对流式套接字和数据报套接字这两种类型进行区分。流失套接字用TCP/IP协议来使用面向连接的通信;另一方面,数据报套接字用UDP/IP来使用无连接通信。2、系统框架3、系统设计4、、服务器端程序#include<>#include<>Voidmain(){//加载套接字库WORDwVersionRequested;WSADATAwsaDdata;Interror;wVersionRequested=MAKEWORD(1,1);err=WSAStarup(wVersionRequested,&wsaDATA);if(err!=0){return;}If(LOBYTE()!=1||HIBYTE()!=1){WSACleanup();Return;}//创建用于监听的套接字SOCKETsockSrv=socket(AF-INET,SOCK-STREAM,0);SOCKADDR-INaddrSrv;---addr=hotonl(INADDR-ANY);-family=AF-INET;-port=htons(6000)//绑定套接字Bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));//将套接字设为监听模式,准备接收客户请求Listen(sockSrv,s);SOCKADDR-INaddrClient;Intlen=sizeof(SOCKADDR);While(1){//等待客户请求到来SOCKETsockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);CharsendBuf(100);Sprintf(sendBuf,)”%sto”,ine-ntoa(-addr));//发送数据Send(sockConn,sendbuf,strlen(sendBuf)+1,0);CharrecvBuf(100);//接受数据Recv(sockConn,recvBuf,100,0);//打印接受的数据Printf(“%s\n”,recvBuf);//关闭套接字Closesocket(sockConn);}}、客户端程序#include<>#include<>Voidmain(){//加载套接字库WORDwVersionRequested;WSADATAwsaDdata;Interror;wVersionRequested=MAKEWORD(1,1);err=WSAStarup(wVersionRequested,&wsaDATA);if(err!=0){return;}If(LOBYTE()!=1||HIBYTE()!=1){WSACleanup();Return;}//创建套接字SOCKETsockSrv=socket(AF-INET,SOCK-STREAM,0);SOCKADDR-INaddrSrv;---addr=hotonl(INADDR-ANY);-family=AF-INET;-port=htons(6000)//向服务器发出连接请求Connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));//接受数据CharrecvBuf[100];Recv(sockClient,recvBuf,100,0);Printf(“%s\n”,recvBuf);//发送数据Send(sockClient,”Thisislisi”,strlen(“Thisinlisi”)+1,0); //关闭套接字Closesocket(sockConn);WSACLeanup();}}结论在此设计中仅仅适合于数量少的计算机间的通信,其中一个缺陷是,当多台计算机同时进行通信时,会照成网络拥塞,可能导致消息传输中丢失,此设计没有做出解决的方案,但有这样的方案猜想,为了解决拥塞问题,可以使用慢开始、拥塞避免、快从传和快恢复算法,进而改进此设计,但是这会涉及大量的数学运算。此设计还存另一个缺陷,没有实现可靠传输,TCP协议的可靠传输机制是用字节的序号进行传输控制,而这里仅是监听端口是否有数据发送,如果有,就接收,没有就继续监听。

基于TCP协议的网络通信设计与实现 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数11
  • 收藏数0 收藏
  • 顶次数0
  • 上传人胜利的喜悦
  • 文件大小79 KB
  • 时间2024-04-16