如果将 clientSocket 和 serverSocket 都更改为“mySocket”,会发生什么情况?
客户端能否在不知道服务器 IP 地址和/或端口号的情况下向服务器发送数据段?
多个客户端可以使用服务器吗?
根据我的笔记,第 20 页:http://www.cs.ucc.ie/~cjs/teach/cs2505/02-app-layer-b.pdf .对这些有点困惑。
我假设如果您将 client 和 serverSocket 都更改为 mySocket 那么什么也不会发生,因为它只是变量名更改(我假设)。
我假设客户端无法在不知道 IP 地址/端口号的情况下发送消息?
多个客户端不能使用服务器,因为那需要线程?
最佳答案
(1) 由于除了问题中的那个之外,我没有看到任何对 mySocket 的引用,所以我会说你的答案似乎是正确的。
(2)地址/端口显然是必要的。然而,这可能是一个棘手的问题,因为客户端可以在套接字上调用 connect() 。使用 UDP,connect() 内核会跟踪调用中传递的地址作为套接字的对等方。然后套接字可以只调用 write() 或 send() 而不必使用 sendto()。尽管如此,调用 connect 仍然首先需要地址/端口,所以谁知道他们得到了什么。
(3)UDP中没有“连接”。许多客户端可以发送到服务器。服务器可以从其 recvfrom 中获取各个客户端的地址,然后返回并在其 sendto 中使用该地址。
关于java - 我困惑的一些UDP socket编程问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5924209/