无名阁,只为技术而生。流水不争先,争的是滔滔不绝。

(python udp) python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子) UDP协议简介和Python实现 全网首发(图文详解1)

前沿技术 Micheal 6个月前 (05-30) 68次浏览 已收录 扫描二维码
文章目录[隐藏]

(python udp) python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)

UDP是User Datagram Protocol的简称,也就是用户数据报协议,是一个无连接的简单的面向数据报的协议。其主要用于不需要一对一连接的通信环境。

要用Python进行UDP通信,可以使用Python内建的socket库. 这个库提供了标准的BSD Sockets API。

这是一个简单的UDP通信的Python例子:

服务端(server.py)

import socket

# 创建socket对象
serverSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 将socket绑定到指定的IP和端口
serverSocket.bind(('127.0.0.1', 12345))

while True:

  # 用1024字节的缓冲区接收客户端发送的内容,并记录发送方地址和端口
  data, addr = serverSocket.recvfrom(1024)

  print ("接收到来自 %s:%s 的数据: %s" % ( addr[0], addr[1], data.decode() ))

客户端(client.py)

import socket

# 创建socket对象,使用IPv4和UDP
clientSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

while True:

  # 获取用户输入的信息
  msg = input('请输入您要发送的信息: ').encode()

  # 将消息发送到指定的IP和端口
  clientSocket.sendto(msg, ('127.0.0.1', 12345))

启动以上代码后,在客户端输入的任何信息都会被服务端接收并输出。

有时候,我们可能想要向局域网内的所有主机发送消息,此时就需要用到UDP广播。其实实现起来也非常简单,只需要修改client.py中创建socket的部分即可:

UDP广播 (broadcast.py)

import socket

# 创建socket对象,使用IPv4和UDP
clientSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 允许广播
clientSocket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)

while True:

  # 获取用户输入的信息
  msg = input('请输入您要发送的信息: ').encode()

  # 将消息发送到指定的广播地址
  clientSocket.sendto(msg, ('<broadcast>', 12345))

” 是一个特殊地址,表示要将数据报发送给同一网络中的所有主机。

注意,以上代码应在Python环境中运行,并确保运行机器的防火墙设置允许UDP通信。为了在实际环境中使用,请将 ‘127.0.0.1’ 地址更改为实际的IP地址。
(python counter) 详解Python Counter过滤和约分原始数据 Python Counter模块用于数据统计 全网首发(图文详解1)
(interval函数) 详解MySQL的INTERVAL()函数:返回一个时间间隔 MySQL INTERVAL() 函数解释 全网首发(图文详解1)

喜欢 (0)
[]
分享 (0)
关于作者:
流水不争先,争的是滔滔不绝