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 没有正常意义上的连接,所以很难知道你的教授到底在想什么。因此,最好的做法就是直接问他们。
但如果我不得不猜测,他们要么希望你:
- 在套接字上调用
connect()
或
- 在应用程序级别建立某种“逻辑”连接。
在 UDP 套接字上调用 connect()
不会执行任何实际操作 I/O,但它会告诉套接字目的地是谁。这允许您使用 send()
发送数据,而不是 sendto()
.
如果您的教授指的是选项 (2),那么它可能只是在两个端点之间进行信息交换。因此,虽然在协议层没有连接,但两个端点会相互通信,因此 已连接。
我正在做作业,我的教授说我需要在 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 没有正常意义上的连接,所以很难知道你的教授到底在想什么。因此,最好的做法就是直接问他们。
但如果我不得不猜测,他们要么希望你:
- 在套接字上调用
connect()
或 - 在应用程序级别建立某种“逻辑”连接。
在 UDP 套接字上调用 connect()
不会执行任何实际操作 I/O,但它会告诉套接字目的地是谁。这允许您使用 send()
发送数据,而不是 sendto()
.
如果您的教授指的是选项 (2),那么它可能只是在两个端点之间进行信息交换。因此,虽然在协议层没有连接,但两个端点会相互通信,因此 已连接。