- 1
- 0
- 约1.95千字
- 约 10页
- 2018-06-28 发布于福建
- 举报
Linux/UNIX网络编程第04章 基本UDP套接口编程
UDP套接字编程 UDP套接字编程 实现UDP套接字基本步骤分为服务器端和客户端两部分: 服务器端 建立UDP套接字; 绑定套接字到特定地址; 等待并接收客户端信息; 处理客户端请求; 发送信息回客户端; 关闭套接字; UDP套接字编程(Cont.) 客户端步骤 建立UDP套接字; 发送信息给服务器; 接收来自服务器的信息; 关闭套接字 UDP套接字编程(Cont.) UDP数据传输函数-sendto #include sys/types.h #include sys/socket.h ssize_t sendto(int sockfd, const void *msg, size_t len, int flags, const struct sockaddr *to, int tolen); 返回:大于0-成功发送数据长度;-1-出错; UDP套接字使用无连接协议,因此必须使用sendto函数,指明目的地址; flags是传输控制标志,其值定义如下: 0:常规操作,如同write()函数; MSG_OOB:发送带外数据; MSG_DONTROUTE:忽略底层路由协议,直接发送。 UDP数据传输函数-recvfrom #include sys/types.h #include sys/socket.h ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *from, int *fromlen); 返回:大于0-成功接收数据长度;-1-出错; UDP套接字使用无连接协议,因此必须使用recvfrom函数,指明源地址; flags是传输控制标志,其值定义如下: 0:常规操作,如同read()函数; MSG_PEEK:只察看数据而不读出数据; MSG_OOB:忽略常规数据,而只读取带外数据; from 和 fromlen 是“值-结果”参数。 UDP服务器模板 #include sys/types.h #include sys/socket.h #inlcude netinet/in.h int main(void) { int socketfd; if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { perror(“Create socket failed.”); exit(1); } /* Bind socket to address */ …… loop { /* receive and process data from client */ …… /* send resuts to client */ } close(sockfd); } UDP客户模板 #include sys/types.h #include sys/socket.h #inlcude netinet/in.h int main(void) { int sockfd; if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { perror(“Create socket failed.”); exit(1); } /* send data to the server */ …… /* receive data from the server */ …… close(sockfd); } UDP套接字例程 本例程分为服务器和客户两部分,主要完成如下功能: 服务器循环接收客户发来的消息,并显示客户IP地址和相应消息; 如果服务器收到”quit“,则退出循环,并关闭套接字; 客户向服务器发送消息,并接收服务器响应,显示该消息,并关闭套接字。 * * 内核 长度 套接口地址结构 用户进程 结果 值 当函数被调用时,结构大小是一值,当函数返回时,结构大小又是一个结果,这种参数类型叫值-结果参数。参数是一个整型指针。 bind(int sockfd, const struct sockaddr *addr, socklen_len len) recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *from, int *fromlen) 值-结果参数说明
您可能关注的文档
最近下载
- 《学前儿童家庭教育》06-特殊类型的学前儿童的家庭教育.pptx VIP
- 北京市海淀区2025-2026学年高三上学期期末语文试卷讲评课件 《论语》评分标准.pptx
- 《新时代高校劳动教育理论与实践教程》专题八 开展服务性劳动.pptx VIP
- 广西壮族自治区柳州铁一名校2023-2024学年高一下学期物理5月月考试题(含答案).pdf VIP
- T_ZZB 2706-2022 高压消防水带.docx VIP
- 课件rtk操作视频培训.pptx VIP
- 2MW双馈风力发电机组(陆上型).pdf VIP
- 饲料建设项目环评(新版环评)环境影响报告表.pdf VIP
- (高清版)B-T 7025.1-2023 电梯主参数及轿厢、井道、机房的型式与尺寸 第1部分Ⅰ、Ⅱ、Ⅲ、Ⅵ类电梯.pdf VIP
- 《建筑地面工程施工质量验收规范》GB-50209-2025.docx VIP
原创力文档

文档评论(0)