Lua TCP协议

注意:若是接收数据为空时,有可能数据是16进制,需要转换

service:

port = 9999 
host = '*'
device_mac = string.upper('fa14576B6247')-- upper
m1 = string.sub(device_mac,1,2)
m2 = string.sub(device_mac,3,4)
m3 = string.sub(device_mac,5,6)
m4 = string.sub(device_mac,7,8)
m5 = string.sub(device_mac,9,10)
m6 = string.sub(device_mac,11,12)
device_mac = m6..m5..m4..m3..m2..m1
log('device_mac:'..device_mac)
  local socket = require("socket.core")-- /*require socket module*/
   local tcp = socket.tcp()
   local host = host 
   --local port = '23'
   local tcpbind = tcp:bind(host,port)
   if(tcpbind and tcpbind == 1) then
       log('Binding to host'..host..port)
   else
       log('Binding error')
  end
  local e = tcp:listen(50)
  if(e and e == 1) then
      log('listen ok')
  else 
      log('listen error')
  end
  log('waiting connect cli')
  local client = assert(tcp:accept())
  log(client)
      if(client ~= nil) then
          log('access success')
      else
          log('accept err')
      end
  local revbuff,status,partial = client:receive(100)--lmcore.strtohex
  if(revbuff) then
    decodeddata = lmcore.strtohex(revbuff, string.len(revbuff))--hex
    log('decodeddata:'..decodeddata) 
    num,endNum = string.find(decodeddata,device_mac)
    data = string.sub(decodeddata,endNum+3,endNum+4)
    data = tonumber(data,16)
    log('data:'..data)
    if num ~= nil then
      log('Found that the device is nearby'..num..endNum)
    end
  end
  --send 
  tcp:close()

client:

 port = 9999
	host = '127.0.0.1'
  local socket = require("socket.core")-- /*require socket module*/
  local tcp = socket.tcp()
  local connect = tcp:connect(host,port)
  tcp:settimeout(4) 
  log(connect)
  if connect ~= nil then 
    log(port)
  
  end
local rev = tcp:receive(50)
if(rev) then
  log("rev:"..rev)
end
  tcp:close()
--end
tcp:close()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值