2011-10-09 105 views
1

我想通過2臺計算機(mac,ubuntu)使用UDP連接發送/接收一些數據,並且它們使用以太網電纜連接。當我運行服務器接收來自客戶端的一些數據時,我得到了數據,但是如果我將其發回,客戶端不會收到它。在進一步的調查中,我發現我在recvfrom()存儲的clientAddress沒有與客戶端的ip地址和端口有關的信息(全部爲零)。任何可能出錯的線索?問題與UDP服務器和客戶端在C

n = recvfrom(sockfd, msg, 1000, 0, (sockaddr *)&clientAddress, &len); 
sendto(sockfd, msg, n, 0, (sockaddr *)&clientAddress, sizeof(clientAddress)); 

回答

2

調用recvfrom之前,請務必填寫len,這是一個值結果參數。

len = sizeof(clientAddress); 
n = recvfrom(sockfd, msg, 1000, 0, (sockaddr *)&clientAddress, &len);