您好,欢迎访问一九零五行业门户网

python中socket实现UDP通信的介绍(附代码)

本篇文章给大家带来的内容是关于python中socket实现udp通信的介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
udptcp是建立可靠连接, 并且通信双方都可以以流的形式发送数据。 相对tcp, udp则是面向无连接的协议。使用udp协议时, 不需要建立连接, 只需要知道对方的ip地址和端口号, 就可以直接发数据包。 但是, 能不能到达就不知道了。
我们来看看如何通过udp协议传输数据。 和tcp类似, 使用udp的通信双方也分为
客户端和服务器
socket实现udp通信的结构图
udp服务端和tcp类似, 使用udp的通信双方也分为客户端和服务器。 服务器首先需要绑定端口。但不需要监听客户端的连接
#serverimport socket#创建socket时, sock_dgram 指定了这个socket的类型是udp。server = socket.socket(type=socket.sock_dgram)server.bind(('192.168.1.165',7890))#不需要调用 listen() 方法, 而是直接接收来自任何客户端的数据print('服务端已开启7890端口,正在等待被连接...')#recvfrom() 方法返回数据和客户端的地址与端口, 这样, 服务器收到数据后,#直接调用 sendto() 就可以把数据用udp发给客户端data,address = server.recvfrom(1024)print(client>>,data.decode('utf-8'))print(客户端连接的socket地址:,  address)server.sendto(b'drink more water!',address)server.close()
udp客户端客户端使用udp时, 首先仍然创建基于udp的socket, 然后, 不需要调用 connect() , 直接通过 sendto() 给服务器发数据
import socket#创建socket时, sock_dgram 指定了这个socket的类型是udp。client = socket.socket(type=socket.sock_dgram)send_data  =b'hello sheenstar'client.sendto(send_data,('192.168.1.165',7890))re_data,address = client.recvfrom(1024)print('server>>',re_data.decode('utf-8'))client.close()
测试结果用两个命令行分别启动服务器和客户端测试
开启服务端
完成一次udp通信
以上就是python中socket实现udp通信的介绍(附代码)的详细内容。
其它类似信息

推荐信息