UDP 套接字连接、断开和重新连接

UDP socket connect, disconnect, and reconnect

我正在做作业,我的教授说我需要在 UDP 上建立连接,我不明白为什么要这样做,因为我认为 UDP 不需要建立连接。

此外,当客户端从服务器接收到所有数据时,我需要断开连接。 然后我需要重新连接才能再次向服务器发送数据。

我正在使用python,我想知道我是否编写了这样的代码

客户端

client.close() //is it right to disconnect? 
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) // is it right to reconnect? 

我是否遵循了教授期望的正确方向?

你说得对,UDP 没有正常意义上的连接,所以很难知道你的教授到底在想什么。因此,最好的做法就是直接问他们。

但如果我不得不猜测,他们要么希望你:

  1. 在套接字上调用 connect()
  2. 在应用程序级别建立某种“逻辑”连接。

在 UDP 套接字上调用 connect() 不会执行任何实际操作 I/O,但它会告诉套接字目的地是谁。这允许您使用 send() 发送数据,而不是 sendto().

如果您的教授指的是选项 (2),那么它可能只是在两个端点之间进行信息交换。因此,虽然在协议层没有连接,但两个端点会相互通信,因此 已连接