我从binarytides查看了UDP客户端程序,我能够将UDP数据包发送到UDP服务器,这是我的嵌入式设备,该设备回送UDP消息。
在这个PC-UDP客户端代码中,它应该得到回显的消息,但是我没有回复任何回声。所以我在我的PC上运行了一个UDP服务器,它监听传入的数据并打印出来,我是能够看到来自我的嵌入式设备的回显消息。
当我在代码中的while(1)循环之前添加这些行时,现在我能够看到Echoed返回消息。
//setup address structure
memset((char *) &si_server, 0, sizeof(si_server));
si_server.sin_family = AF_INET;
si_server.sin_port = htons(PORT);
si_server.sin_addr.S_un.S_addr = INADDR_ANY;
if( bind(s ,(struct sockaddr *)&si_server , sizeof(si_server)) == SOCKET_ERROR)
{
printf("Bind failed with error code : %d" , WSAGetLastError());
exit(EXIT_FAILURE);
}
puts("Bind done");
对可能导致此问题的原因有什么想法?