我打開了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