【正点原子RV1126 AI Linux开发板】 udp_server测试
[复制链接]
测试下网络通信udp_server测试。
一、udp_server测试
1.1、代码
udp_server.c
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <net/if.h>
#include <linux/sockios.h>
#include <sys/ioctl.h>
#include <arpa/inet.h>
#include <errno.h>
#include <net/if.h>
#include <netinet/ether.h>
#include <netinet/in.h>
#include <netpacket/packet.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <time.h>
#include <unistd.h>
#include <fcntl.h>
#include <termios.h>
#define BUF_SIZE 2048
#define INTERFAXENAME "udp"
int sock;
int main(int argc, char *argv[])
{
int ret = 0;
char buf[1024];
memset(buf,1,1024);
if ( (sock=socket(AF_INET, SOCK_DGRAM, 0)) <0)
{
perror("socket");
exit(1);
}
struct sockaddr_in server_addr;
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(5050);
server_addr.sin_addr.s_addr = inet_addr("192.168.1.21");
ret = bind(sock, (struct sockaddr *)&server_addr, sizeof(server_addr));
if (ret < 0)
{
printf("%s: bind 192.168.1.21 failed\n", __FUNCTION__);
close(sock);
return 0;
}
else
printf("bind 192.168.1.21 success\r\n");
struct sockaddr_in client_addr;
socklen_t len;
len = sizeof(client_addr);
while(1)
{
ret = recvfrom(sock, buf, 1024, 0,(struct sockaddr *)&client_addr, &len);
printf("recv:%s\n", buf);
}
close(sock);
return 0;
}
1.2、编译代码并复制文件到开发板
root@ubuntu:/opt/atk-rv1126_app/socket# arm-linux-gnueabihf-gcc -o udp_server udp_server.c
1.3、运行
首先在开发板上运行
[root@ATK-DLRV1126:/opt]# ./udp_server
然后,在网络调试助手中建立UDP连接
网络调试助手发送数据,开发板接收内容
|