📄 udp_svr.c
字号:
#include <sys/socket.h>#include <linux/types.h>#include <linux/errqueue.h>#include <sys/ioctl.h>#include "my_inet.h"#include <stdio.h>#include <errno.h>#include <string.h>#include <arpa/inet.h>#include <unistd.h>int main(){ int i; struct sockaddr_in sa; struct sockaddr_in r_sa; sa.sin_family = PF_INET; sa.sin_port = htons(16000); inet_aton("172.16.48.2", &sa.sin_addr); int fd = socket( MY_PF_INET, SOCK_DGRAM, MY_IPPROTO_UDP ); if( fd < 0 ){ perror("socket: "); return -1; } if( bind( fd, (struct sockaddr *)&sa, sizeof(sa) ) == -1 ) perror("bind: "); //int bwrite = send( fd, "abcdefg", 7, 0 ); //if( bwrite == -1 ){ // perror("send: "); // return -1; //} printf("wait for msg!\n"); char buf[1024]; int len = sizeof(r_sa); int bread = recvfrom( fd, buf, 1024, 0, (struct sockaddr *)&r_sa, (socklen_t*)&len ); if( bread == -1 ){ perror("recv: "); return -1; } printf("%s\n", buf); printf("%s, %u\n", inet_ntoa( r_sa.sin_addr ), ntohs(r_sa.sin_port) ); if( sendto( fd, buf, strlen(buf), 0, (struct sockaddr *)&r_sa, len ) == -1 ) perror("sendto: "); do{ sleep(1); }while(1); close( fd ); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -