#include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <pthread.h> #include <netinet/in.h> #include <errno.h> #include <sys/time.h> #include <arpa/inet.h> #include <sys/socket.h> #include <sys/select.h> //接收线程,负责消息并且显示 void *recv_thread(void* arg) { int udp_fd = (int)arg; struct sockaddr_in addr; addr.sin_family = AF_INET; addr.sin_port = htons(8000); addr.sin_addr.s_addr = htonl(INADDR_ANY); socklen_t addrlen = sizeof(addr); bzero(&addr, sizeof(addr)); while (1) { char buf[256] = ""; char ipbuf[256] = ""; recvfrom(udp_fd, buf, sizeof(buf), 0, (struct sockaddr*)&addr, &addrlen); printf("\r\033[0:31m[%s]:\033[31m%s\n", inet_ntop(AF_INET, &addr.sin_addr, ipbuf, sizeo chen.yu 认证博客专家 博客排名前200 深信服三年半工作经验,目前就职游戏厂商,希望能和大家交流和学习,微信公众号:编程入门到秃头 或扫描下面二维码零基础入门进阶人工智能(链接)