我正在编写一个基于UDP的客户端服务器并且已经获得了相当多的代码,但我对UDP服务器如何将响应发送回UDP客户端感到困惑,这是我的理解,直到现在:
假设UDP客户端想要与UDP服务器通信,因此它将向UDP服务器发送请求(使用在客户端打开的UDP套接字),现在这将到达UDP服务器上的UDP模块,UDP模块将在其中识别使用端口号的UDP服务,并将该请求发送到该UDP服务/服务器.
现在,由于UDP是一种无连接协议,因此与TCP不同,UDP服务器不会通过某些连接发送响应,而是UDP服务器将从请求中提取源IP地址和源端口,并将响应发送回客户端.
我的困惑是,在服务器端,有一个套接字绑定到UDP端口并"连续"监听任何UDP客户端请求,但在客户端不是这样,UDP客户端将打开一个套接字发送请求到UDP服务器,那就是它,我认为它不能保持该端口挂起UDP服务器响应,如果该端口关闭,那么客户端将如何接收响应.
我的意思是说,UDP服务器的响应将返回UDP客户端,因为IP地址在那里,但一旦该响应已到达客户端的UDP模块,即使有一个端口,但UDP模块如何将其发送给最初的客户端发送请求是因为它会关闭绑定到该端口的套接字?或者它不会?
我正在寻找能够清楚地描述UDP通信的答案(我不想将它与TCP进行对比或解释TCP,因为我已经对TCP有了一定的了解),尤其是响应将如何回到UDP客户端.