Python网络进阶
- 很好,看来你已经实现了Python网络基础知识的学习。
Python与UDP网络
UDP数据的发送和接收
- UDP数据的发送和接收也依赖socket。
UDP实现广播
- UDP广播可以实现一个终端向局域网内所有设备发送数据。具体的步骤如下:
0. 连接网络
1. 新建一个socket对象,并配置为广播模式
import socket
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
2. 获取本地IP地址
在Python和MicroPython中,获取本地IP地址有不同方法:
Python
def get_local_ip_address():
try:
# 创建一个 UDP 套接字
temp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
temp_socket.connect(("8.8.8.8", 80)) # 连接到一个公共的 IP 地址
local_ip_address = temp_socket.getsockname()[0] # 获取套接字的本地地址
temp_socket.close() # 关闭套接字
return local_ip_address
except Exception as e:
print("Failed to get local IP address:", e)
return None
MicroPython
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("网络名","网络密码")
while not wlan.isconnected():
time.sleep(0.1)
#wlan.ifconfig((ip, mask, gate,dns))
self.ip=wlan.ifconfig()[0]
3. 将IP最后一位改为255,然后发送
UDP发送数据时,如果将目标IP的最后一位定义为255,则表示广播。
ip_parts = ip.split('.')
ip_parts[-1] = '255'
bip= '.'.join(ip_parts)
udp_socket.sendto(data, (bip, o_port))
作者:admin 创建时间:2024-03-21 10:20
最后编辑:admin 更新时间:2024-07-17 11:01
最后编辑:admin 更新时间:2024-07-17 11:01