代码:
import network
import socket
import time
def wifiInit(name, port):
ap = network.WLAN(network.AP_IF) # 创建一个热点
ap.config(essid=name, authmode=network.AUTH_OPEN) # 无需密码
ap.active(True) # 激活热点
ip = ap.ifconfig()[0] # 获取ip地址
print("wifi ip:", ip)
udpSocket = None
try:
while True:
if not ap.isconnected(): # 等待client连接
print("no client")
time.sleep(1)
else:
print("client connected")
if udpSocket is None:
udpSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 创建UDP套接字
udpSocket.bind((ip, port)) # 绑定地址和端口号
print('UDP socket created')
print("waiting for data")
data, addr = udpSocket.recvfrom(1024) # 接收数据(1024字节大小)
print("received data:", data.decode())
# 模拟回复数据给客户端
response = "Received data: " + data.decode()
udpSocket.sendto(response.encode(), addr)
if data.decode() == "#end":
print("client socket disconnected")
udpSocket.close()
udpSocket = None
ap.disconnect()
ap.active(False)
print("wifi ap disconnected")
break
if not ap.isconnected():
udpSocket.close()
udpSocket = None
print("client disconnected")
break
except Exception as e:
print(f"出现异常: {e}")
finally:
if udpSocket:
udpSocket.close()
print("Socket closed")
wifiInit("wifi32", 66)
效果: