Does micropython support UDP boardcast mode?
When I try to use udp boardcast to transfer some messages, but my server can't receive any message. But if I use unicast mode, it can work.
The code as following:
Server running in my hardware by using micropython
Code: Select all
import socket
import time
def do_connect():
import network
sta_if = network.WLAN(network.STA_IF)
if not sta_if.isconnected():
print('connecting to network...')
sta_if.active(True)
sta_if.connect('Leo', '1234567890')
while not sta_if.isconnected():
time.sleep_ms(500)
print('network config:', sta_if.ifconfig())
return sta_if.ifconfig()[0]
local_ip = do_connect()
server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP protocol
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server.bind((local_ip, 61234))
print("start Listening at 61234")
while True:
data, client_addr = server.recvfrom(1000)
print('client connected from', client_addr)
print("data: ", data)
Code: Select all
import socket
import sys
import time
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
network = '<broadcast>'
#network = '172.20.10.12'
port = 61234
sock.sendto('Client broadcast message!'.encode('utf-8'), (network, 61234))