【发布时间】:2013-08-28 17:20:09
【问题描述】:
我在 C 中的 UDP 中有一个有效的客户端/服务器实现,但我试图弄清楚如何让服务器将变量发送回客户端。
这是因为客户端在 60 秒内发送 X 个数据包,而服务器将成功接收 Y 个数据包。我希望服务器将 Y 变量返回给客户端,以便它可以进行一些用户可以看到的计算(数据包丢失、bps 等......)。
但是,服务器是否可以简单地使用 sendto() 而客户端使用 recvfrom()?
感谢您的帮助。
【问题讨论】:
我在 C 中的 UDP 中有一个有效的客户端/服务器实现,但我试图弄清楚如何让服务器将变量发送回客户端。
这是因为客户端在 60 秒内发送 X 个数据包,而服务器将成功接收 Y 个数据包。我希望服务器将 Y 变量返回给客户端,以便它可以进行一些用户可以看到的计算(数据包丢失、bps 等......)。
但是,服务器是否可以简单地使用 sendto() 而客户端使用 recvfrom()?
感谢您的帮助。
【问题讨论】:
这是可能的。在服务器端提取客户端地址并使用它:
n = recvfrom(sockfd,msg,1000,0,(struct sockaddr *)&cliaddr,&len);
sendto(sockfd,msg,n,0,(struct sockaddr *)&cliaddr,sizeof(cliaddr));
在客户端方面:留给读者作为练习。
【讨论】: