计算机网络课程设计报告--利用Winsock实现双机通信.docx

上传人:王** 文档编号:780608 上传时间:2024-01-14 格式:DOCX 页数:14 大小:87.49KB
下载 相关 举报
计算机网络课程设计报告--利用Winsock实现双机通信.docx_第1页
第1页 / 共14页
计算机网络课程设计报告--利用Winsock实现双机通信.docx_第2页
第2页 / 共14页
计算机网络课程设计报告--利用Winsock实现双机通信.docx_第3页
第3页 / 共14页
计算机网络课程设计报告--利用Winsock实现双机通信.docx_第4页
第4页 / 共14页
计算机网络课程设计报告--利用Winsock实现双机通信.docx_第5页
第5页 / 共14页
计算机网络课程设计报告--利用Winsock实现双机通信.docx_第6页
第6页 / 共14页
计算机网络课程设计报告--利用Winsock实现双机通信.docx_第7页
第7页 / 共14页
计算机网络课程设计报告--利用Winsock实现双机通信.docx_第8页
第8页 / 共14页
计算机网络课程设计报告--利用Winsock实现双机通信.docx_第9页
第9页 / 共14页
计算机网络课程设计报告--利用Winsock实现双机通信.docx_第10页
第10页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《计算机网络课程设计报告--利用Winsock实现双机通信.docx》由会员分享,可在线阅读,更多相关《计算机网络课程设计报告--利用Winsock实现双机通信.docx(14页珍藏版)》请在优知文库上搜索。

1、课程设计报告20142015学年第一学期课程名称计算机网络设计题目利用Winsock实现双机通信.2摘要、目2,二、)P)I2(一)、VisualC+6.0简介2(二)、VisualC+6.0主要组成2qq、TCP/P)I.*3()、TCP/TP)I3(.)、TCP4=Ii、TllnSockj4()、I,a5.socket.4(二)WinSocket的通信原理5()、5/、7(一)、WinSocket通信的步骤:79()、服务器弋码9(*)、11,1、13九、课程设计的总结体会13卜、14利用socket实现双机通信一、摘要Socket通信机制提供了两种通信方式:有连接(TCP)和无连接方式(

2、UDP),分别面线不同的应用需求。使用有连接方式时,通信链路提供了可靠的,全双工的字节流服务。在该方式下,通信双方必须必须创建一个联接过程并建立一条通信链路,以后的网络通信操作完全在这一对进程之间进行,通信完毕关闭此联接过程。使用无连接方式时其系统开销比有连接方式小,但通信链路提供了不可靠的数据报服务,不能保证信源所传输的数据一定能够到达信宿。在该方式下,通信双方不必创建一个联接过程和建立一条通信链路,网络通信操作在不同的主机和进程之间转发进行。关键字:WinSOCk、TCP、VC+、双机通信二、目的和要求利用WinSock来实现双机通信,理解TCP状态机图。要求使用WinSock编程,采用其

3、中的TCP面向连接方式,实现文本数据的交换。三、开发环境简介(一)、VisualC+6.0简介VisualC+6.0,简称VC或者VC6.0,是微软推出的一款C+编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。ViSUalC+是一个功能强大的可视化软件开发工具。自1993年MiCrOSOft公司推出ViSUalC+1.0后,随着其新版本的不断问世,VisualC+已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了VisualC+.NET(VisualC+7.0),但它的应用的很大的局限性,只适用于Windows2000WindowsXP和WindowsNT4.O0所以实际中

4、,更多的是以ViSUaIC+6.0为平台。ViSUalC+6.0不仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrateddevelopmentenvironment,IDE)。VisualC+6.0由许多组件组成,包括编辑器、调试器以及程序向导APPWiZard、类向导ClaSSWiZard等开发工具。这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境。(二)、VisualC+6.0主要组成1、DeveloperStudio,这是一个集成开发环境,我们日常工作的99%都是在它上面完成的,再加上它的标题赫然写着“Mier。So

5、ftViSUalC+”,所以很多人理所当然的认为,那就是ViSUalC+了。其实不然,虽然DeVeIOPerStUdiO提供了一个很好的编辑器和很多WiZard,但实际上它没有任何编译和链接程序的功能,真正完成这些工作的幕后英雄后面会介绍。我们也知道,Devel。PerStUdio并不是专门用于VC的,它也同样用于VB,VJ,VlD等ViSUalStUdio家族的其他同胞兄弟。所以不要把DeVeIOPerStUdiO当成ViSUalC+,它充其量只是ViSUalC+的一个壳子而已。这一点请切记!2、MFCo从理论上来讲,MFC也不是专用于ViSUalC+,BorlandC+,C+Builder

6、和SynIanteCC+同样可以处理MFCo同时,用ViSUalC+编写代码也并不意味着一定要用MFC,只要愿意,用ViSUaIC+来编写SDK程序,或者使用STL,ATL,一样没有限制。不过,ViSUalC+本来就是为MFC打造的,VisualC+中的许多特征和语言扩展也是为MFC而设计的,所以用VisualC+而不用MFC就等于抛弃了VisualC+中很大的一部分功能。但是,VisualC+也不等于MFC03、PlatformSDK0这才是VisualC+和整个VisualStudio的精华和灵魂,虽然我们很少能直接接触到它。大致说来,PIatfonnSDK是以MiCrOSOftC/C+编

7、译器为核心(不是ViSUalC+,看清楚了),配合MASM,辅以其他一些工具和文档资料。上面说到DeVeIoPerStUdio没有编译程序的功能,那么这项工作是由谁来完成的呢?是CL,是NMAKE,和其他许许多多命令行程序,这些我们看不到的程序才是构成ViSUalStUdio的基石。四、TCP/IP简介(一)、TCP/IP简介TCP/IP(TransmissionControlProtocol/InternetProtOCOD的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是Internet最基本的协议、InteInet国际互联网络的基础,简单地说,就是由网络层的IP

8、协议和传输层的TCP协议组成的。TCP(TransmissionControlProtocol)中文称为传输控制协议”。TCP是一种面向连接的、可靠的、基于字节流的运输层(Transportlayer)通信协议。在简化的计算机网络OSl模型中,它完成第四层传输层所指定的功能(UDP)是同一层内另一个重要的传输协议。IP是英文InternetProtoCol的缩写,中文称为“网际协议”,是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守,IP协议就可以

9、与因特网互连互通。(二)、TCP作用在因特网协议族中,TCP层是位于IP层之上,应用层之下的中间层。提供可靠的、像管道一样的连接。应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分割成适当长度的报文段,通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)的限制。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个字节一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK),如果发送端实体在合理的往返时延(Rn)内未收到确认,那么对应的数据

10、,假设丢失了,将会被重传。TCP用一个校验和函数来检验数据是否有错误,在发送和接收时都要计算校验和。首先,TCP建立连接之后,通信双方都同时可以进行数据的传输。其次,TCP通信是全双工的,在保证可靠性上,采用超时重传和捎带确认机制。在流量控制上,采用滑动窗口协议,协议中规定,对于窗口内未经确认的分组需要重传。在拥塞控制上,采用慢启动算法。TCP所提供服务的主要特点有:1、面向连接的传输;2、端到端的通信;3、高可靠性、确保传输数据的正确性,不出现丢失或乱序;4、全双工方式传输;5、采用字节流方式,即以字节为单位传输字节序列;6、紧急数据传送功能。五、WinSock简介(一)、什么是SOCket

11、所谓s。Cket通常也称作套接字,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过套接字向网络发出请求或者应答网络请求。SoCket接口是TCP/IP网络的APLSOCket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。SOCket接口设计者最先是将接口放在Unix操作系统里面的。如果了解UniX系统的输入和输出的话,就很容易了解SOCket了。网络的S。Cket数据传输是一种特殊的I/O,S。Cket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket

12、O,该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。常用的Socket类型有两种:流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)0流式是一种面向连接的SoCket,针对于面向连接的TCP服务应用;数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用。最重要的是,socket是面向客户/服务器模型而设计的,针对客户和服务器程序提供不同的SoCket系统调用。客户随机申请一个SoCket(相当于一个想打电话的人可以在任何一台入网电话上拨号呼叫),系统为之分配一个socket号;服务

13、器拥有全局公认的s。Cket,任何客户都可以向它发出连接请求和信息请求(相当于一个被呼叫的电话拥有一个呼叫方知道的电话号码)。SoCket利用客户/服务器模式巧妙地解决了进程之间建立通信连接的问题。服务器socket半相关为全局所公认非常重要。不妨考虑一下,两个完全随机的用户进程之间如何建立通信?假如通信双方没有任何一方的SOCket固定,就好比打电话的双方彼此不知道对方的电话号码,要通话是不可能的。(二)、WinSocket的通信原理WinSOCk是一个基于SOCket模型的API。WinSoCk在Windows98,WindowNT中使用。WinSoCk一般由两部分组成:开发组件和运行组件

14、。开发组件是供程序员在WindoWS环境下开发网络应用程序使用的,它包括应用程序接口库函数、头文件和实现的文档,其中最主要的是WINSOCK.H运行组件是以动态链接库(DlL)来实现socket接口的。文件名为WINSOCK.DLL应用程序在执行时装入它就能实现网络通信功能(三)、基本套接字1、创建套接字SOCketO功能:使用前创建一个新的套接字格式:SOCKETPASCALFARsocket(intaf,inttype,intprocotol);参数:af:通信发生的区域type:要建立的套接字类型PrOCotol:使用的特定协议2、指定本地地址bind()功能:将套接字地址与所创建的套接字号联系起来。格式:intPASCALFARbind(SOCKETs,conststructsockaddrFAR*name,intnamelen);参数:s:是由SoCket()调用返回的并且未作连接的套接字描述符(套接字号)。其它:没有错误,bind。返回0,否则SoCKET_ERROR地址结构说明:structsockaddr_inshortsin_famiIy;/AF_INETu_shortsin_port;16位端口号,网络字节顺序str

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 网络与通信

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!