我正在尝试使用UDP连接通过2台计算机(mac,ubuntu)发送/接收一些数据,并使用以太网电缆连接它们。当我运行服务器从客户端接收一些数据时,我得到了数据但是如果我将其发回,则客户端不会收到它。在进一步调查中,我发现我存储在recvfrom()上的clientAddress没有与客户端的ipaddress和端口相关的信息(它全是零)。关于可能出错的任何线索?
n = recvfrom(sockfd, msg, 1000, 0, (sockaddr *)&clientAddress, &len);
sendto(sockfd, msg, n, 0, (sockaddr *)&clientAddress, sizeof(clientAddress));
答案 0 :(得分:2)
确保在调用len
之前填充recvfrom
,这是一个值结果参数。
len = sizeof(clientAddress);
n = recvfrom(sockfd, msg, 1000, 0, (sockaddr *)&clientAddress, &len);