我试图将NodeMCU套接字客户端程序连接到Python服务器程序,但我无法建立连接。ESP8266 NodeMCU Lua将“套接字客户端”连接到“Python服务器”连接不可能
我测试了一个简单的Python客户端服务器代码,它运行良好。
Python的服务器代码
import socket # Import socket module
s = socket.socket() # Create a socket object
host = socket.gethostname() # Get local machine name
port = 12345 # Reserve a port for your service.
s.bind((host, port)) # Bind to the port
s.listen(5) # Now wait for client connection.
while True:
c, addr = s.accept() # Establish connection with client.
print 'Got connection from', addr
print c.recv(1024)
c.send('Thank you for connecting')
c.close() # Close the connection
Python客户机代码(与此我测试上面的代码)
import socket # Import socket module
s = socket.socket() # Create a socket object
host = socket.gethostname() # Get local machine name
port = 12345 # Reserve a port for your service.
s.connect((host, port))
s.send('Hi i am aslam')
print s.recv(1024)
s.close # Close the socket when done
输出服务器侧是
Got connection from ('192.168.99.1', 65385)
Hi i am aslam
NodeMCU代码
--set wifi as station
print("Setting up WIFI...")
wifi.setmode(wifi.STATION)
--modify according your wireless router settings
wifi.sta.config("xxx", "xxx")
wifi.sta.connect()
function postThingSpeak()
print("hi")
srv = net.createConnection(net.TCP, 0)
srv:on("receive", function(sck, c) print(c) end)
srv:connect(12345, "192.168.0.104")
srv:on("connection", function(sck, c)
print("Wait for connection before sending.")
sck:send("hi how r u")
end)
end
tmr.alarm(1, 1000, 1, function()
if wifi.sta.getip() == nil then
print("Waiting for IP address...")
else
tmr.stop(1)
print("WiFi connection established, IP address: " .. wifi.sta.getip())
print("You have 3 seconds to abort")
print("Waiting...")
tmr.alarm(0, 3000, 0, postThingSpeak)
end
end)
但是当我运行NodeMCU时,Python服务器中没有响应。
在ESPlorer控制台输出看起来像
Waiting for IP address...
Waiting for IP address...
Waiting for IP address...
Waiting for IP address...
Waiting for IP address...
Waiting for IP address...
WiFi connection established, IP address: 192.168.0.103
You have 3 seconds to abort
Waiting...
hi
难道我做错了什么或在这里失去了一些步骤?
您的指导表示赞赏。
控制台上的NodeMCU输出是什么? –
在控制台上输出了 – aslamengineer
等待IP地址... 等待IP地址... 等待IP地址... 等待IP地址... 等待IP地址... 等待IP地址... 已建立WiFi连接,IP地址:192.168.0.103 您有3秒中止 正在等待... hi – aslamengineer