嵌入式实验八

《通信工程嵌入式系统》实验报告

嵌入式系统 实验报告

班 级:姓 名:学 号:实验名称:成 绩:

评 语:

二〇一六年

1

《通信工程嵌入式系统》实验报告

一、实验目的

(1) 熟练掌握linux下 SOCKET 网络编程 二、实验原理

答:套接字(socket)是一种特殊的I/O接口,它也是一种文件描述符。socket是一种常用的进程之间通信机制,通过它不仅能实现本地机器上的进程之间的通信,而且通过网络能够在不同机器上的进程之间进行通信。

套接字包含三种类型:

?流式套接字(SOCK_STREAM):TCP协议,从而保证了数据传输的可靠性和顺序性。

?数据报套接字(SOCK_DGRAM):UDP协议,通过相互独立的报文进行传输,是无序的。

?原始套接字(SOCK_RAW):对底层协议如IP或ICMP进行直接访问,主要用于一些协议的开发。 三、实验内容

基于TCP协议,利用socket编程思路,编写程序实现多个客户端与服务器通信功能,设通信端口为8888。(程序及结果)附录 四、实验材料

电脑,UPNET2410经典实验箱,linux虚拟机; 五、思考题

1、说明TCP协议通信流程。

答:TCP是面向连接的,所谓面向连接,就是当计算机双方通信

2

《通信工程嵌入式系统》实验报告

时必需先建立连接,然后进行数据通信,最后拆除连接三个过程。TCP在建立连接时又分三步走:

第一步(A->B):主机A向主机B发送一个包含SYN即同步(Synchronize)标志的TCP报文,SYN同步报文会指明客户端使用的端口以及TCP连接的初始序号;

第二步(B->A):主机B在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示主机B的请求被接受,同时TCP序号被加一,ACK即确认(Acknowledgement)。

第三步(A->B):主机A也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。

2、说明程序中,如何实现客户接入与通信多任务处理。 客户端 服务器端socket() bzero() connect() recv() getchar() close()

代码如下:

“client.c”

#include #include #include

3

socket() bind() listen() accept() send() close()

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4