Linux下_UDP协议网络编程函数接口
Posted DS小龙哥 嵌入式技术资讯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下_UDP协议网络编程函数接口相关的知识,希望对你有一定的参考价值。
1.1 UDP协议创建流程
1.2 recvfrom函数
#include <sys/types.h> #include <sys/socket.h> ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr * from, size_t *addrlen); |
返回值
成功返回接收到数据的长度,负数失败
示例:
/*阻塞方式接收数据*/ int len=0; char buff[1024]; size_t addrlen=sizeof(struct sockaddr); while(1) { len=recvfrom(socketfd, buff, 1024, 0, (struct sockaddr *)&ClientSocket, &addrlen); buff[len]='\0'; printf("Rx: %s,len=%d\n",buff,len); printf("数据发送方端口号:%d\n",ntohs(ClientSocket.sin_port)); } |
1.2 sendto函数
#include <sys/types.h> #include <sys/socket.h> ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr * to, int addrlen); |
返回值
成功返回发送数据的长度,失败返回-1
示例:
/*向UDP协议服务器发送数据*/ ServerSocket.sin_family=PF_INET; //协议 ServerSocket.sin_port=htons(PROT); //端口 ServerSocket.sin_addr.s_addr=inet_addr(argv[1]); bzero(ServerSocket.sin_zero,8); //初始化空间 char buff[]="1234567890"; int len=0; while(1) { len=sendto(socketfd, buff, strlen(buff), 0, (const struct sockaddr*)&ServerSocket, sizeof(struct sockaddr)); printf("Tx: %d\n",len); sleep(1); } |
以上是关于Linux下_UDP协议网络编程函数接口的主要内容,如果未能解决你的问题,请参考以下文章