1VxWorks 应用开发实验指导三TSINGHUA实验1.编写基于socket的通信程序实验2.生成一个支持dosFs的Vx Works映像实验3.设计基于TCP的通信程序实验4.一个以网卡驱动程序分析今天的内容2TSINGHUA实验1.编写基于socket的通信程序实验目的:¾熟悉网络通信原理和实现方法¾学习使用socket编程实验步骤:¾实验基础回顾¾案例分析¾自行设计一个使用socket通信的程序TSINGHUAVx Works网络架构3TSINGHUA端口号用于识别最终的目的地IP地址用于识别主机主机上有很多应用Ports (16-bit 识别符) 1-65,535 TSINGHUA端口号约定RFC1700规定常用端口号从0到1023,1024到49151是已注册的端口号。常见服务协议的端口¾telnet(23)¾ftp(21)¾SMTP(25)¾http(80)4TSINGHUASocket套接字Integer– Sockets向TCP/IP提供接口¾连接用户程序和协议栈Sockets也为其他多种协议提供通用接口TSINGHUASocket识别流 由协议和本地/远端地址/端口识别 一个应用可以指向多个sockets Sockets可以被多个应用操作 五元组¾ SIP ¾ DIP¾ SS¾ DS¾ Protocol NO.5TSINGHUAVx Works sockets Vx Works实现了与BSD4.4 TCP/IP兼容的sockets编程接口 Vx Works目前支持3种套接字¾ 数据报套接字:支持双向的数据流,但不保证数据传送的可靠性、有序性和无重复(SOCK_DGRAM)¾ 流套接字:提供双向的、有序的、无重复并且无记录边界的数据服务 (SOCK_STREAM)¾ 裸层套接字:直接构建在IP协议上的(SOCK_RAW)TSINGHUAVx Works套接字描述符与文件操作一样,每个套接字在创建时都生成一个套接字描述符该套接字描述符是在文件描述符表中的索引值该套接字描述符在描述符表中的表项并不指向文件表,而是指向一个与该套接字有关的数据结构6TSINGHUA套接字中的客户机/服务器模型使用客户机/服务器模型进行编程时,服务器端有一个任务在指定的端口等待客户来连接,一旦连接上之后,就可以按设计的数据交换方法和格式进行数据传送客户端在需要的时刻向服务器发出连接请求TSINGHUA客户/服务器模型7TSINGHUA应用创建流程描述TSINGHUA创建SOCKET Int socket (domain, ty pe, protocol )¾ 创建一个socket¾ Socket可以是面向连接的(TCP=SOCK_STREAM), 面向无连接的(UDP=SOCK_DATAGRAM), 和原始数据(SOCK_RAW)¾ 返回一个socket描述符(文件描述符),便于以后使用socket 例子:¾ sd =socke...