2个Pycom微处理器(Micropython)之间简单UDP连接故障排除
我试图通过UDP传输将一些字节数据从Pycom LoPy4发送到Pycom WiPy 通过使用.ifconfig()方法将服务器端的ip地址设置为静态ip'192.168.0.105',我试图让我的客户端(lopy4)指向服务器的(Wipy)ip地址。然后,我使用.sendto()方法将一些数据发送到相同的IP地址'192.168.0.105' 我的客户端能够发送数据,但我的服务器仍然没有接收到任何信息 这是我的服务器代码:2个Pycom微处理器(Micropython)之间简单UDP连接故障排除,udp,micropython,Udp,Micropython,我试图通过UDP传输将一些字节数据从Pycom LoPy4发送到Pycom WiPy 通过使用.ifconfig()方法将服务器端的ip地址设置为静态ip'192.168.0.105',我试图让我的客户端(lopy4)指向服务器的(Wipy)ip地址。然后,我使用.sendto()方法将一些数据发送到相同的IP地址'192.168.0.105' 我的客户端能够发送数据,但我的服务器仍然没有接收到任何信息 这是我的服务器代码: import usocket from network import
import usocket
from network import WLAN
wlan = WLAN()
## Set static IP address for server
wlan.ifconfig(id = 1, config=('192.168.0.105', '255.255.255.0','192.168.0.1', '192.168.0.1'))
## Set WLAN mode to AP (access point)
wlan.init(mode = WLAN.AP, ssid = 'lopy4_server', auth = None, channel=7, antenna=WLAN.INT_ANT)
print("wlan mode set up: without auth\n")
UDP_IP = "127.0.0.1" ## localhost
UDP_PORT = 5005
## Set up UDP socket and bind
sock = usocket.socket(usocket.AF_INET,usocket.SOCK_DGRAM) ## UDP
sock.bind((UDP_IP, UDP_PORT))
print('binded')
data, addr = sock.recvfrom(1024) ## buffer size is 1024 bytes
print("received message:", data)
print("source: ", addr)
这是我的客户代码:
import usocket
import utime
from network import WLAN
## Set WLAN mode to STA (station/client)
wlan = WLAN(mode = WLAN.STA)
wlan.scan() ## scan for available networks
wlan.connect('lopy4_server', auth = None)
while not wlan.isconnected():
pass
print(wlan.ifconfig())
UDP_IP = '192.168.0.105'
UDP_PORT = 5005
MESSAGE = "Test message"
## Set up UDP socket and connect
sock = usocket.socket(usocket.AF_INET,usocket.SOCK_DGRAM) # UDP
while True:
print ("UDP target IP:", UDP_IP)
print ("UDP target port:", UDP_PORT)
print ("message:", MESSAGE)
sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))
utime.sleep(3)
这是我收到的输出(左服务器,右客户端):
我怀疑问题与我使用的IP地址有关,但我似乎找不到原因。我希望有人能帮我?提前谢谢 您需要绑定到0.0.0.0,但不需要绑定到环回(127.0.0.1)。在服务器中将其更改为
UDP_IP=“0.0.0.0”
另一个好地方是在PyCom论坛上询问。@MaximSagaydachny我已经尝试了你的建议,现在它可以工作了。谢谢如果您能向我解释ip地址“0.0.0.0”是否有任何重要意义,我将不胜感激!您需要绑定到0.0.0.0,但不需要绑定到环回(127.0.0.1)。在服务器中将其更改为UDP_IP=“0.0.0.0”
另一个好地方是在PyCom论坛上询问。@MaximSagaydachny我已经尝试了你的建议,现在它可以工作了。谢谢如果您能向我解释ip地址“0.0.0.0”是否有任何重要意义,我将不胜感激!