在套接字编程中从缓冲区接收数据

在套接字编程中从缓冲区接收数据

请看这张图片。recvfrom() 会阻塞,直到从客户端接收到数据报。由于没有连接,每个数据报可能来自不同的发送者。

我可以从接收器接收数据,但我不知道服务器如何找到哪个数据属于哪个客户端?因为有可能 8.8.8.8 客户端发送 3 个数据报,服务器必须对数据进行排序。服务器是否为每个客户端分配特定的缓冲区?

答案1

最好的选择是设计协议,使消息包含某种源标识符。如果做不到这一点,您可以使用源 IP 地址和端口来确定客户端,但如果客户端的 IP 地址发生变化,这种方法就会失效。

相关内容