gpt4 book ai didi

UDP通信需要Java ServerSocket吗?

转载 作者:行者123 更新时间:2023-12-02 08:10:29 24 4
gpt4 key购买 nike

我在考试中遇到了以下问题:

“让我们假设您想要为客户端使用 UDP。您是否需要创建一个新套接字来管理 UDP 中的并行连接?为什么或为什么不?如果多个客户端连接到该套接字会发生什么情况? “

这个问题还引用了一个 Java 类 TCPServer.java,它创建 ServerSocket,然后在 while(true) 循环中,它接受连接并为传入的套接字创建套接字来自用户的连接请求。

在我看来,TCP 服务器仅用于 TCP 连接,因此不可能对 UDP 客户端使用相同的服务器端代码。

最佳答案

你走在正确的道路上。

ServerSockets用于 TCP 连接。 DatagramSockets (仍然是无连接的)用于 UDP。

并回答另一部分,即“如果多个客户端连接到该套接字会发生什么?”答案是:

  1. 如果是 UDP,那就没问题,因为它是无连接的
  2. 如果是 TCP,则 ServerSocket 应该看到连接请求,并创建一个新的 Socket 以便与该客户端进行双向通信

回答“为什么或为什么不”——UDP 是无连接的,因此不使用新的 Socket 进行通信。 UDP 仅接收 DatagramPacket,然后丢弃它(如果应用程序确定它无效、格式错误等),或者使用 DatagramPacket 进行回复。在 UDP 中,没有连接,没有连接状态,也没有输入/输出流。

关于UDP通信需要Java ServerSocket吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7521741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com