- 49
- 0
- 约6.69千字
- 约 14页
- 2019-03-10 发布于山东
- 举报
网络通讯程序设计实验udp
第 PAGE \* Arabic \* MERGEFORMAT 0 页
本科学生实验(实践)报告
院 系:教育信息技术学院
实验课程:网络通讯程序设计
实验项目: UDP套接字编程实例
指导老师:王洪江
开课时间:2017?2018 年度第 二 学期
专 业:教育技术学
班 级: 15级 1班
华南师范大学教务处
华南师范大学实验报告
学生姓名:林璇君 学号:20152801036
专业: 教育技术 年级:15级
班级:1班
课程名称:网络通讯程序设计
实验项目:UDP套接字编程实例
实验类型:验证??设计综合实验时间:
实验指导老师:王洪江?????实验评分:
实验 UDP套接字编程实例
实验目的
用C语言编写客户端、服务器程序,实现基于UDP的网络通信数据传输服务,熟悉基于UDP的Socket编程原理。
实验设计方案
实验原理
UDP是无连接不可靠的数据报协议。TCP提供面向连接的可靠字节流。UDP协议全称是用户数据报协议 ,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层--传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。
(1)客户端不和服务器建立连接,只是使用sendto给服务器发送数据,必须指定服务器地址作为参数。
(2)服务器不接受来自客户端的连接,而只是使用recvfrom,等待来自客户端的数据达到。recvfrom同时返回
客户端的协议地址,用于服务器给客户端响应。
实验要求
认真阅读和掌握本实验的相关知识点
上机编写并运行本程序
保存和打印出程序的运行结果,并结合程序进行分析
3.实验内容
(1)客户根据用户提供的ip地址将用户从终端输入的信息发送给服务器,然后等待服务器的回应
(2)服务器接收客户端发送的信息并显示,同时显示客户的ip地址、端口号,并向客户端发送消息,如果服务器接收的客户信息为“bye”,则退出循环,并关闭套接字。
(3)客户端接收、显示服务器发回的信息,并关闭套接字
4. 实践代码
Client.c
#include unistd.h
#include sys/socket.h
#include netinet/in.h
#include netdb.h
#include stdio.h
#include stdlib.h
#includestring.h
#includeerrno.h
#includesys/types.h
#define PORT 1234
#define MAXDATASIZE 1000
int main(int argc, char * argv[])
{
int fd,numbytes;
char buf[MAXDATASIZE];
struct hostent * he;
struct sockaddr_in server;
int i=1;
if (argc!=2)
{
printf(Usage: %sIP address\n , argv[0]);
exit(-1);
}
if ((he =gethostbyname(argv[1])) == NULL){
perror(gethostbyname error. );
exit(-1);
}
if ((fd =socket (AF_INET, SOCK_STREAM, 0)) ==-1 ){
perror(Create socket failed. );
exit(1);
}
bzero(server,sizeof(server));
server.sin_family =AF_INET;
server.sin_port=htons(PORT);
server.sin_addr=*((struct in_addr *)he-h_addr);
if(connect(fd,(struct sockaddr *)server, sizeof(struct sockaddr))==-1)
{
perror(Bind error.);
exit(1);
}
if((numbytes=recv(fd,buf
原创力文档

文档评论(0)