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

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机网络课程设计TCPIP协议分析及实现Word文档下载推荐.doc)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机网络课程设计TCPIP协议分析及实现Word文档下载推荐.doc

1、4、了解用Visual C+ 进行基于对话框的编程的方法。5、培养一定的自学能力和独立分析问题、解决问题的能力。比如查找资料书、自主学习新知识。二、 软件、硬件环境软件环境:Windows XP,Visual C+6.0硬件环境:AMD Sempron(tm)Processor 3000+ , 1.61 GHz,512MB 内存物理地址扩展三、 基本思路及所涉及的相关理论31 相关理论与原理3.1.1 WinsockWindows Sockets接口是TCP/IP网络最为通用API,已成为Windows网络编程的事实上的标准。Microsoft在Sockets API库的基础上创建了WinSo

2、ck控件,专门用于Windows接口,与Sockets完全兼容。利用 WinSock 控件可以与远程计算机建立连接,Winsock包含有用户数据文报协议 (UDP)和传输控制协议 (TCP)。Winsock控件对用户来说是不可见的,它提供了访问 TCP 和 UDP 网络服务的方便途径。Winsock控件封装了烦琐的技术细节,编写网络应用程序时,不必了解 TCP/IP的细节或调用低级的 Winsock APIs。通过设置控件的属性并调用其方法就可轻易连接到一台远程机器上去,并且还可双向交换数据。Windows Sockets 支持两种类型的套字接,即流式套字接(SOCKSTREAM)和数据报套字

3、接(SOCKDGRAM)。对于要求精确传输数据的Windows Sockets通信程序,一般采用流式套接字。流式套接字提供了一个面向连接的、可靠的、数据无错的、无重复发送的及按发关顺序接收数据的报务。其内设流量控制,避免数据流超限,同时数据被看做是字节流,无长度限制。流式套接字的服务进程和客户进程在通信前必须建立各自的套接字并进行了连接,然后才能对相应的套接字进行“读”、“写”操作,实现数据的传送。会用到WindSocket的一些基本函数。关于流式套字接具体介绍如下:1、创建套接字socket()功能:使用前创建一个新的套接字格式:SOCKET PASCAL FAR socket(int af

4、,int type,int procotol);af: 通信发生的区域,一般取AFI_NETtype: 要建立的套接字类型流式套字接(SOCKSTREAM)数据报套字接(SOCKDGRAM)procotol: 使用的特定协议,一般0,即为TCP/IP协议2、指定本地地址bind()将套接字地址与所创建的套接字号联系起来。int PASCAL FAR bind(SOCKET s,const struct sockaddr FAR * name,int namelen);参数:s: 是由socket()调用返回的并且未作连接的套接字描述符(套接字号)。其它:没有错误,bind()返回0,否则SOC

5、KET_ERROR地址结构说明:struct sockaddr_inshort sin_family;/AF_INETu_short sin_port;/16位端口号,网络字节顺序struct in_addr sin_addr;/32位IP地址,网络字节顺序char sin_zero8;/保留 3、建立套接字连接connect()和accept()共同完成连接工作int PASCAL FAR connect(SOCKET s,const struct sockaddr FAR * name,int namelen); SOCKET PASCAL FAR accept(SOCKET s,stru

6、ct sockaddr FAR * name,int FAR * addrlen);同上4、监听连接listen()用于面向连接服务器,表明它愿意接收连接。int PASCAL FAR listen(SOCKET s, int backlog);/ backlog为等待队列的最大长度5、数据传输send()与recv()数据的发送与接收int PASCAL FAR send(SOCKET s,const char FAR * buf,int len,int flags); int PASCAL FAR recv(SOCKET s,const char FAR * buf,int len,int

7、 flags);buf:指向存有传输数据的缓冲区的指针6、关闭套接字closesocket()关闭套接字sBOOL PASCAL FAR closesocket(SOCKET s);7、字节顺序转换函数:-inet_addr() 将点式IP地址转换为不念旧恶32位的无符号长整数。unsigned long inet_addr(const char FAR* cp)8、WSAStartup() 功能:加载Winsock DLL相应版本。int WSAStartup() (WORD wVersionRequested,LPWSADATA lpWSAData);9、WSAScleanup() 终止W

8、insock DLL的使用,并释放资源。int WSACleanup(void)3.1.2 用winsock控件实现点对点通信随着计算机和Internet网络的发展,原先在测量、控制、消费等领域不同设备/仪器之间,大多采用RS232/485或现场总线组建网络等进行数据传输的情况正在改变,特别在要求数据传输速度和可靠性方面的应用产品,转向基于Internet网络的远程传输和应用。网络编程大多基于TCP/IP协议,实现方法有多种,复杂但编程适应性广的方法是调用底层的Winsock API函数或MFC基本类等;简单方便的方法可以采用如Winsock控件。在网络编程中最常用的方案便是客户机/服务器模型

9、,客户应用程序向服务器程序请求服务。另外一种模式是点对点通信,通信双方对等,既有客户机功能又有服务器的功能,编程简单,适合传输数据流少的场合,而且采用简单的UDP协议,易于用微控制器等嵌入式系统实现,在测量控制方面有许多应用。接下将介绍一些网络编程和Winsock控件知识,用VC+实现点对点通信。3.1.3网络通信协议基础Winsock控件支持两种协议,TCP协议和UDP协议,都属于用TCP/IP协议。TCP(Transfer Control Protocol)是传输控制协议的简称,是基于连接的协议,在数据传输之前必须先建立连接,通信双方是基于客户/服务器模型,必须分别建立客户应用程序和服务器

10、应用程序。UDP(用户数据文报协议)协议是一种无连接协议,通信双方之间的传输类似于传递邮件:消息从一方发送到另一方,但是两者之间没有明确的连接,通信双方是对等的,单次传输的最大数据量取决于具体的网络。本设计是使用TCP的服务类型。利用Winsock控件创建双方的通信过程如下(以TCP为例):首先服务器端的应用程序先要运行,并且进行端口号的设置,然后进入等待,即等待客户端应用程序的连接请求;然后客户端的应用程序开始运行,向服务器发送信息,在服务器端会以消息对话框的形式显示这些信息;然后服务器端的应用程序会把这些信息再次地传回给客户端的应用程序,同样以消息对话框的形式显示出来。3.1.4 二进制数

11、据点对点通信的实现基于网络的远程控制和测量应用中,一般数据传输采用二进制格式,双机之间的连接方式是主丛式,构建一个测控网络,从机之间如果要交换数据也得通过主机。在网络测量控制等领域,通信双方需要传输的数据流量少,下位机一般是微控制器等嵌入式系统,数据处理能力较慢,通信双方也不必保持紧密联系,因此大多采用UDP协议,基于点对点的方式,双方通信的数据可靠性可以通过定义数据表示格式来保证。为了描述如何应用,我们在这里建立一个基于对话框的简单的点对点通信例子,说明在VC+中如何用Winsock控件实现二进制数据点对点通信。32 典型过程图面向连接的流式套接字的系统调用模式图四、方案设计通过以上理论的学

12、习,我设计了此双向通信的C/S程序。其设计思路基本如下:客户机/服务器模式客户端应用程序主要功能是:建立到服务器的连接,向服务器发送信息,接收从服务器发来的回传信息,关闭与服务器的连接。服务器端应用程序主要功能是:创建监听Socket进行监听,在有客户进行连接请求时会创建一个新的接收的Socket处理这个客户得数据发送和接收(此部分最多可接收和处理5个客户的连接请求)。五、 设计结果运行前的准备:获取主机IP地址。具体方法是在运行窗口中运行cmd命令(如图1)。 图1接着输入ipconfig命令,即可获得所需地址(如图2)。 图2正式运行:先运行服务器端程序,进行网络的端口号设置,如图3 图3

13、接着运行客户端程序,进行连接,当正确运行时,系统会弹出连接成功的对话框,接着即可发送消息(如图4)。图4然后,服务器端弹出提示信息(如图5),最后,客户端弹出提示信息(如图6)。 图5 图6以上就是一次完整的通信过程。六、源代码(含有注释)服务器端:AcceptSocket.cpp/ AcceptSocket.cpp : implementation file#include stdafx.hServer.h/自己添加的成员函数AcceptSocket.hMainFrm.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAcceptSocketCAcceptSocket:CAcceptSocket(CMainFrame * pMainFrame) m_pMainFrame=pMainFrame;/进程框架对象的赋值 CAcceptSocket()/ Do not edit the following lines, which are needed by ClassWizard.#if 0BEGIN_MESSAGE_MAP(CAcceptSocket, CSocke

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1