@
opiviqo 你这个代码没体现出来接收和发送报文的地方
参考下面的链接里面的源码
https://www.cs.cmu.edu/afs/cs/academic/class/15213-f99/www/class26/udpserver.c重点信息如下
n = recvfrom(sockfd, buf, BUFSIZE, 0,
(struct sockaddr *) &clientaddr, &clientlen);
注意这个函数的定义 ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,
struct sockaddr *src_addr, socklen_t *addrlen);
clientaddr 是要被函数修改的,执行完之后,这个信息要保存下来作为上下文使用,
sockfd+clientaddr 才是一个完整的 socket
n = sendto(sockfd, buf, strlen(buf), 0,
(struct sockaddr *) &clientaddr, clientlen);
ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
const struct sockaddr *dest_addr, socklen_t addrlen);
到发送的时候,仍然要指定这个地址,不过这一次就是输入参数了