我遇到此命令的问题:
printf 'Hello, iterative udp server!' | nc -u 192.168.8.100 2016 -w 1
最后添加了一些垃圾,如:
Hello, iterative udp server!??
或在服务器端:
server: received 'Hello, iterative udp server��'
当我使用更多字符时,似乎工作得很好......我对此感到有些困惑。
服务器以这种方式接收:
if( (n_recv = recvfrom(ps_fd, buf, sizeof(buf)-1, 0, (struct sockaddr *) &peer_addr, &peer_addr_len)) < 0 ) {
fprintf(stderr, "recvfrom: %s\n", strerror(errno))
break;
}
buf[n_recv] = '\0';
已更新! 当我将buf复制到某个结构中的数据报字段时,似乎添加了这个垃圾,以后将响应发送回客户端。
runner_attr->datagram = malloc(sizeof(char)*strlen(datagram));
memcpy(runner_attr->datagram, datagram, strlen(datagram));