【ESP8266之LUA开发】五、建立TCP客户端,实现socket通信,PC有关防火墙的解决方案
【摘要】
分享两个,PC端网络调试的软件<这里, nrpm>
8266建立TCP Client客户端,实现socket通信
init.lua
gpio.mode(4,gpio.OUTPUT)
...
分享两个,PC端网络调试的软件<这里, nrpm>
8266建立TCP Client
客户端,实现socket
通信
init.lua
gpio.mode(4,gpio.OUTPUT)
gpio.mode(2,gpio.OUTPUT)
gpio.write(4,1)
tmr.alarm(0, 1000, 1, function()
gpio.write(4,1-gpio.read(4))
end)
tmr.alarm(1, 3000, 0, function()
dofile("Client.lua")
end)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
wifi.lua
wifi.setmode(wifi.STATIONAP)
cfg={}
cfg.ssid="Hellow8266"
cfg.pwd="11223344"
wifi.ap.config(cfg)
apcfg={}
apcfg.ssid="qqqqq"
apcfg.pwd="11223344"
wifi.sta.config(apcfg)
wifi.sta.autoconnect(1)
ClientConnectedFlage = 0
TcpConnect = nil
tmr.alarm(1, 1000, 1, function()
if ClientConnectedFlage == 0 then
Client = net.createConnection(net.TCP, 0)
Client:connect(8080,"192.168.1.103")
Client:on("receive", function(Client, data)
uart.write(0,data)
end)
Client:on("connection", function(sck, c)
ClientConnectedFlage = 1
TcpConnect = Client
print("Link OK")
tmr.stop(1)
Client:on("disconnection", function(sck, c)
ClientConnectedFlage = 0
TcpConnect = nil
tmr.start(1)
end)
end)
if ClientConnectedFlage == 0 then
print("Link Error")
end
end
end)
uart.on("data",0,function(data)
if TcpConnect ~= nil then
TcpConnect:send(data)
end
end, 0)
printip = 0
wifi.eventmon.register(wifi.eventmon.STA_DISCONNECTED, function(T)
printip = 0
end)
wifi.eventmon.register(wifi.eventmon.STA_GOT_IP, function(T)
if printip == 0 then
print("+IP"..T.IP)
end
printip = 1
end)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
实现效果展示:
连接PC的虚拟服务器一定会遇到的问题
- 服务器IP的获取
端口倒是无所谓,一个不行换另一个,范围0-65536。
如果您使用的是SocketTool
这个软件的话,它是不会自动捕获PC
作为服务器时候的IP的,需要自行查看此时PC
的IP
,如何看呢?
- 防火墙的锅
类似当时玩AT写的<这里>出现的
①、您要不直接关闭防火墙,但是那又太危险了,毕竟是联网状态。
②、8266
目前是处于AP
模式的,会自己建立wifi
,PC
连8266
的wifi
,然后借助8266
分配的IP
地址(在串口进行回显的那个IP
就行,直接就能连上了)。但是这种状态又是处于断网的局域网状态,很让人恶心。
③、把相关的调试助手加入到防火墙的白名单
完美搞定~
文章来源: recclay.blog.csdn.net,作者:ReCclay,版权归原作者所有,如需转载,请联系作者。
原文链接:recclay.blog.csdn.net/article/details/78172784
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)