实验报告三
一、 实验原理介绍
这次的主要实验内容是:安装Tornado ULIP仿真网卡驱动,启动2个vxSim目标系统,其中一个vxSim为TCP Client,另一个为TCP Server。TCP Server与Client通过socket API进行数据的收发。另外要求在VxWorks中集成target shell组件及ping相关组件,能够在两个vxsim上互相ping通,验证网络环境。
完成这个实验需要综合Socket、TCP/IP协议等知识来完成。
1. Socket定义
Socket是通过标准的Unix文件描述符和其他程序通信的一个方法。每一个套接字都有一个本地的由操作系统分配的唯一的套接字号。
Socket接口是TCP/IP网络的API,Socket接口定义了许多函数,程序员可以用它们来开发TCP/IP网络上的应用程序。网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描
述符。Socket具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。
两个网络程序之间的一个网络连接包括五种信息:通信协议、本地协议地址、本地主机端口、远端主机地址和远端协议端口。Socket数据结构中包含这五种信息。
2. Socket类型
常用的Socket类型有两种:流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。流式是一种面向连接的Socket,针对于面向连接的TCP服务应用;数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用。在本次实验中要用到的就是流式Socket。
tcp ip协议ppt3. 网络字节顺序
每一台机器内部对变量的字节存储顺序不同,而网络传输的数据是一定要统一顺序的。所以对内部字节表示顺序与网络字节顺序不同的机器,一定要对数据进行转换。
4. 字节处理函数
Socket地址是多字节数据,不是以空字符结尾的,这和C语言中的字符串是不同的,需要进行处理。
5. IP地址转换
需要将数字点形式表示的字符串IP地址与32位网络字节顺序的二进制形式的IP地址进行转换。
二、 代码设计说明
本实验是一个需要使用到客户端/服务器通信模式的问题。主要的设计流程为,底层的网卡驱动安装好后,调用标准的Socket套接字通过TCP/IP 协议进行通信。服务器端等待服务。一旦有客户端的通信请求,如果通信协议符合,则建立连接,进行通信。服务器一方使用TCP套接字与客户端通信。在服务的主循环中,任务tcpServerWorkTask首先读取来自客户端的请求,并想控制台输出客户信息,如果需要,将向客户端发送应答信息。客户端通过控制台提示输入,建立请求报文,然后发送到服务器,如果需要应答,则等待来自服务器端的回应。
(1)服务器端
首先申请一个socket套接字,用bind函数将端口与socket绑定;然后对端口进行监听,等待来自于client的连接申请;连接建立后,接收Client通过socket连接发送来的数据,进行相应处理并返回处理结果,或者向client发送相应数据;通信结束后中断与Client的连接
(2)客户端
首先建立socket,取得文件描述符,若失败返回错误信息;然后连接到已知地址的Server端口上;连接建立成功后进行数据通信,向服务器端发送数据,发送完毕后可以选择是否需要服务器端返回回执; 通信结束后中断与Server的连接。
三、实验步骤
1、在主机上安装虚拟网卡ULIP
(1)控制面板到并打开添加硬件选项,点击下一步
(2)搜索最近连接硬件之后,选择yes,点击下一步
(3)从列表中选择添加新硬件设备,单机下一步,选择从列表中安装
(4)在普通硬件类型中,选择网络适配器,点击下一步
(5)选择从磁盘安装,到Tornado安装目录下的host\x86-win32\bin目录,选择windriver ULIP,点击下一步两次
(6)忽略弹出警告,继续。
(7)在控制面板启动网络连接选项,右键windriver ULIP链接图标,从属性中选择因特网协议(TCP\IP),在其属性中输入你要设置的IP地址和子网掩码,然后应用。可用ping 100.0.0.254验证适配器是否工作正常.
2、激活仿真器和外界的网络通信。
(1)在控制面板中选择管理工具,选择服务,到routing and remote 服务,激活并且将启动类型变为自动。
3、配置vxsim的网络服务
(1)创建可启动的工程,在vxworks标签中包含“network components”
或者修改tornado\target\config\simpc\config.h
#if FALSE /* ---->将原先的TRUE改成FALSE */
#undef INCLUDE_NETWORK
(2)修改WDB connection。
4、(1)新建一个Bootable的工程,BSP选为simpc,然后编译,如果你想检验一下网络功能,可在workspace的vxworks页的network components->networking protocols->network applications->ping client点右键include ping client,重新build;
(2)Launch simulator,选择custom-built simulator,浏览选中刚才编译出来的,processor no.设为0(full simulator可支持16个simulator,并且能够互相通信,它们的processor no.分别是0-15),确定
(3)Launch target server配置如下:
然后你可以双击窗口右下方的target server图标查看启动情况;也可以通过Tornado菜单(Tools->target server->configure)进行target server的配置并启动它

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。