为什么Shell / Bash printf会在消息中添加一些垃圾?或服务器端垃圾添加。

时间:2016-08-16 16:18:26

标签: c bash shell printf netcat

我遇到此命令的问题:

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));

0 个答案:

没有答案