10 两个服务器连接

--启动socket客户端任务
sys.taskInit(
function()
local retryConnectCnt = 0
while true do
if not socket.isReady() then
retryConnectCnt = 0
--等待网络环境准备就绪,超时时间是5分钟
sys.waitUntil("IP_READY_IND",300000)
end

if socket.isReady() then
--创建一个socket tcp客户端
local socketClient = socket.tcp()
-- local socketClient1= socket.tcp()
--阻塞执行socket connect动作,直至成功
if socketClient:connect("jkang.ren","36558") then
-- if socketClient1:connect("jkang.ren","36558") then
retryConnectCnt = 0
ready = true
uart.write(1, "CONNECT OK")
while true do
if not socketInMsg.proc(socketClient) then log.error("socketTask.socketInMsg.proc error") break end
if not socketOutMsg.proc(socketClient) then log.error("socketTask.socketOutMsg proc error") break end
end
socketOutMsg.unInit()

ready = false
else
retryConnectCnt = retryConnectCnt+1
end

--断开socket连接
socketClient:close()
if retryConnectCnt>=5 then link.shut() retryConnectCnt=0 end
sys.wait(5000)
else
--进入飞行模式,20秒之后,退出飞行模式
net.switchFly(true)
sys.wait(20000)
net.switchFly(false)
end
end
end
)

sys.taskInit(
function()
local retryConnectCnt = 0
while true do
if not socket.isReady() then
retryConnectCnt = 0
--等待网络环境准备就绪,超时时间是5分钟
sys.waitUntil("IP_READY_IND",300000)
end

if socket.isReady() then
--创建一个socket tcp客户端
local socketClient = socket.tcp()
-- local socketClient1= socket.tcp()
--阻塞执行socket connect动作,直至成功
if socketClient:connect("jkang.ren","43520") then
-- if socketClient1:connect("jkang.ren","36558") then
retryConnectCnt = 0
ready = true
uart.write(1, "CONNECT OK")
while true do
if not socketInMsg.proc(socketClient) then log.error("socketTask.socketInMsg.proc error") break end
if not socketOutMsg.proc(socketClient) then log.error("socketTask.socketOutMsg proc error") break end
end
socketOutMsg.unInit()

ready = false
else
retryConnectCnt = retryConnectCnt+1
end

--断开socket连接
socketClient:close()
if retryConnectCnt>=5 then link.shut() retryConnectCnt=0 end
sys.wait(5000)
else
--进入飞行模式,20秒之后,退出飞行模式
net.switchFly(true)
sys.wait(20000)
net.switchFly(false)
end
end
end
)
我在demo里建了两个tcp连接但是从串口发上来的数据有时候发向这个服务器,有时候发向另一个服务器,这是什么原因,该怎么解决
请先 登录 后评论

1 个回答

晨旭 - 菜鸟

建议把两个任务放到两个不同的文件中,再试一下

并且不能共用同一个socketInMsg.proc和socketOutMsg.proc

请先 登录 后评论
  • 1 关注
  • 0 收藏,2684 浏览
  • rainmakersk 提出于 2018-09-20 10:57

相似问题