


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实用文档TCP/UDP 通信实验报告学号:姓名:实验二:TCP/UDP通信实验报告一、实验目的熟练掌握UDP、TCP Client/Server模式的通信原理。二、实验内容传输控制协议(Transport Control Protocol)是一种面向连接的,可靠的传输层协议。面向连接是指一次正常的TCP传输需要通过在TCP客户端和TCP服务端建立特定的虚电路连接来完成, 该过程通 常被称为“三次握手”。可靠性可以通过很多种方法来提供保证,在 这里我们关心的是数据序列和确认。TCP通过数据分段(Segment中 的序列号保证所有传输的数据可以在远端按照正常的次序进行重组, 而且通过确认保证数据传
2、输的完整性。要通过TCP传输数据,必须在两端主机之间建立连接。举例说明,TCP客户端需要和TCP服务 端建立连接,过程如图12-1所示TCP StaleflTCP StateCLOSEDLISTENSEmiMXl £T1别NSYNSEMSrN-RECEIVED區OSCL ACK-10W,FSTAB LI£HFDN-REnf IVFDFOkimArKat CHaACKFKTARLISHFOFKTAELlSHEr图12-1 TCP客户端与服务端连接过程 、第一步中,客户端向服务端提出连接请求。这时TCP SYN标志置位。客户端告诉服务端序列号区域合法,需要检查。客户端在 TCP
3、报头的序列号区中插入自己的ISN。服务端收到该 TCP分段后,在 、第二步以自己的ISN回应(SYN标志置位),同时确认收到 客户端的第一个TCP分段(ACK标志置位)。 、在第三步中,客户端确认收到服务端的ISN(ACK标志置位)。到此为止建立完整的 TCP 连接, 开始全双工模式的数据传输过 程。根据以上内容编写一个 TCP Client/Server 模式的通信程序。事 实上网络程序是由两个部分组成的 -客户端和服务器端。它们的建立 步骤如下:服务器端:socket->bind->listen->accept 客户端:socket->connect。三、实验步骤实
4、验按下述步骤进行:(1)编写UDP、TCP Client/Server模式的通信程序;( 2)调试并运行自己编写的实现程序;( 3)了解 TCP Client/Server 模式的工作原理,比较二者的不同,如 出现异常情况,在实验报告中写出原因分析;(4)保留编写的实现程序在你的用户目录下,以备辅导教师检查。四、实验代码/*UDP*/*客户端的工作流程:首先调用socket函数创建一个 Socket,填写服务器地址及端口号,*从标准输入设备中取得字符串,将字符串传送给服务器端,并接收服务器端返回的字* 符串。最后关闭该socket。*Author:xiaopeng 01121435*Date:
5、2015/05/16*/#include<stdio.h>#include<stdlib.h>#include<string.h>#include<errno.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>/ 定义端口号#define PORT 5432int main(int argc,char *argv)int cli_sockfd;socklen_t addrlen;char seraddr14;struct soc
6、kaddr_in cli_addr;char buffer256;int len;if( argc != 2)/ 为输入 IP 地址作为参数的时候提示使用方法 printf(" 使用方法 : ./client n");exit(0);/* 建立 socket*/ cli_sockfd=socket(AF_INET,SOCK_DGRAM,0);if(cli_sockfd<0) printf(" 创建 socket 失败 !n");return 1;/* 填写 sockaddr_in*/ addrlen=sizeof(struct sockaddr_i
7、n);bzero(&cli_addr,addrlen); cli_addr.sin_family=AF_INET;if( inet_pton(AF_INET, argv1, &cli_addr.sin_addr) <= 0) printf("ip 地址转换失败, IP: %s!n",argv1);exit(0); bzero(buffer,sizeof(buffer);/* 从标准输入设备取得字符串 */ printf(" 请输入要发送的消息: n");fgets(buffer, 256, stdin);/* 将字符串传送给 ser
8、ver 端*/ fer),0,(struct sockaddr*)&cli_addr,addrlen);printf(" 消息已发出 ! 等待服务器的响应 .n");/* 接收 server 端返回的字符串 */ len=recvfrom(cli_sockfd,buffer,sizeof(buffer),0,(struct sockaddr*)&cli_addr,&addrlen); /printf("receive from %sn",inet_ntoa(cli_addr.sin_addr);printf(" 从服务器
9、收到 : %s",buffer); close(cli_sockfd);return 0;服务器端程序如下:/*UDP*/*服务器的工作流程:首先调用socket函数创建一个Socket,然后调用bind函数将其与本机*地址以及一个本地端口号绑定,接收到一个客户端时,服务器显示该客户端的IP 地址,并将字串*返回给客户端。*Author:xiaopeng 01121435*Date:2015/05/16*/#include<stdio.h>#include<stdlib.h>#include<string.h>#include<errno.h
10、>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#define PORT 5432int main(int argc,char *argv)int ser_sockfd;int len;/int addrlen;socklen_t addrlen;char seraddr100;struct sockaddr_in ser_addr;/* 建立 socket*/ser_sockfd=socket(AF_INET,SOCK_DGRAM,0);if(ser_sockfd&l
11、t;0)printf("I cannot socket successn");return 1;printf("Socket 创建成功 !n");/* 填写 sockaddr_in 结构 */ addrlen=sizeof(struct sockaddr_in);bzero(&ser_addr,addrlen);ser_addr.sin_family=AF_INET;/* 绑定客户端 */if(bind(ser_sockfd,(struct sockaddr *)&ser_addr,addrlen)<0)printf("
12、连接错误 !n");return 1;printf(" 绑定 Scoket 成功 !,等待客户端的请求 .n");while(1)bzero(seraddr,sizeof(seraddr);len=recvfrom(ser_sockfd,seraddr,sizeof(seraddr),0,(struct sockaddr*)&ser_addr,&addrlen); /* 显示 client 端的网络地址 */printf(" 客户端 IP 地址 : %sn",inet_ntoa(ser_addr.sin_addr);/* 显示客户端发来的字串 */printf(" 接收到的消息 :%s",seraddr);/* 将字串返回给 client 端 */sendto(ser_sockfd,seraddr,len,0,(struct sockaddr*)&ser_addr,addrlen);close(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产品购货合同标准文本
- 正式劳动合同书标准范本
- 农银成长合同标准文本
- 公益活动合同标准文本
- 公司出境旅游合同范例
- 企业外包安装合同标准文本
- app研发合同范例
- DB5111-T 52-2024 麻柳姜 种姜繁殖技术规程
- 绿色建筑行业创新
- 教师帮扶贫困生心得体会模版
- 全国计算机等级考试一级试题及答案(5套)
- 海口市标准劳动合同范本
- 新入职员工设备培训
- 2024年中国林蛙油市场调查研究报告
- PANTONE潘通色卡TPX颜色在线查询(1-2部分)
- 2021《超星尔雅》舞蹈鉴赏章节测试答案
- 外周灌注指数PI
- 2020年天津市中考满分作文《细品落雨花开》2
- 会计岗位招聘笔试题及解答(某大型国企)
- 赛力斯招聘在线测评题
- 体格检查:腹部检查(一)
评论
0/150
提交评论