【发布时间】:2021-12-09 23:08:23
【问题描述】:
我正在做作业,我的教授说我需要在 UDP 上建立连接,我不明白为什么要这样做,因为我认为 UDP 不需要建立连接。
另外,当客户端从服务器接收到所有数据时,我需要断开连接。 然后我需要重新连接才能再次向服务器发送数据。
我正在使用python,我想知道我是否会编写这样的代码
客户端
client.close() //is it right to disconnect?
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) // is it right to reconnect?
我是否遵循教授期望的正确方向?
【问题讨论】:
-
socket中的教授和命名都有点误导。 UDP 不需要像 TCP 那样的“连接”或“套接字”。一侧侦听 UDP 端口,另一侧向其发送数据报。 (可以有多个发送者和数据报。)有关您的代码的详细帮助,请将其完整展示给我们并提出具体问题! -
@KlausD。 UDP 确实需要一个套接字。
-
您的教授显然希望您在 UDP 套接字上发出
connect()。当你这样做时,你可以使用read()和write()和send()和recv(),因为套接字知道远程IP地址和端口是什么。这不会创建网络连接:它只是调节本地 API。 -
要断开 UDP 套接字,请使用空套接字地址再次调用
connect()。
标签: python sockets network-programming udp connection