【发布时间】:2013-12-08 13:31:13
【问题描述】:
我正在准备考试,发现了这个问题:
可以使用单个套接字来实现典型的 UDP 服务器。解释为什么,对于 TCP 驱动的服务器,我发现创建了两个套接字 - 一个用于所有客户端都接近服务器,一个用于每个客户端的特定(套接字),用于服务器和客户端之间的进一步通信。
这(在我的理解中)是由并发问题驱动的(希望不与接触点地址上的单个客户进行过多沟通)。我知道 UDP 是无连接的,但无法在我的脑海中说明它。我看到如果服务器是 UDP 驱动的,它可以执行单个操作(通过/到套接字/端口重复泵送内容),然后可以由多个客户端监听。如果服务器可以对两个任务做出反应 - 一个 get 和一个 put。客户端如何在不创建连接的情况下发出指令?客户端(在我看来)需要在已知端口上发送获取请求,并在同一端口上获得反馈。这将阻止服务器同时与多个客户端通信的能力。那么创建第二个套接字来在双方之间进行通信会更好,这样服务器和其他客户端之间的潜在通信就不会受到阻碍吗? (与 tcp 一样)
【问题讨论】: