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协议网络编程函数接口的主要内容,如果未能解决你的问题,请参考以下文章

Linux网络编程必学!——Linux_网络编程_UDP

Linux 网络编程套接字

Linux 下的 UDP 编程

[linux] Linux网络之Socket编程入门

[linux] Linux网络之Socket编程入门

Linux-UDP编码接口以及代码实现