我打开了UDP套接字来侦听传入数据包。我可以在wireshark日志中看到到达NIC的数据包。但是,通过Socket读取时不可用。 'netsatat'命令显示监听任何传入UDP消息的端口号。套接字阅读器继续等待。我在Linux(ubuntu)环境中使用Java和C进行了检查。我可以看到接收到的IPV4数据包的标识值是0.该值是否可以为套接字读取数据发挥任何作用? 读取插槽我的C代码NIC中收到的数据包没有通过套接字读取
int sock, n, nr;
socklen_t fromlen;
struct sockaddr_in server;
struct sockaddr_in from;
sock = socket(AF_INET, SOCK_DGRAM, 0);
if (sock < 0)
printf("Can not create socket in server\n");
memset(&server, 0, sizeof(struct sockaddr_in));
server.sin_family = AF_INET;
server.sin_port = htons(5555);
server.sin_addr.s_addr = INADDR_ANY;
if(bind(sock, (struct sockaddr *)&server, sizeof(server)) < 0)
fromlen = sizeof(struct sockaddr_in);
while(1) {
printf("Waiting to receive\n");
n = recvfrom(sock, &nr, sizeof(nr), 0, (struct sockaddr *) &from, &fromlen);
printf("I have received");
}
请找到Wireshark的跟踪http://imgur.com/Au9BeS1
没有看到你所做的事情就无法说出任何话。请制作[SSCCE](http://sscce.org/)给我们看。 – 2013-03-14 08:53:08
@JoachimPileborg添加了代码和链接以跟踪。请让我知道,如果你需要更多的细节 – 2013-03-15 03:50:56