ღCauchyོꦿ࿐ 2022-10-16 16:04 采纳率: 100%
浏览 142
已结题

Lua 的一个小demo?教一下,感激不尽!!

Lua 用协程(coroutine)实现

  • 一个server端可以等待多个client端连接。
  • 分别用Lua实现 server、client
  • 有源码(只需要最基本的回显功能)
  • 写回答

1条回答 默认 最新

  • Jackyin0720 2022-10-19 15:07
    关注
    
    --lua的TCP通信发送字符串末尾必须添加\n
    --server
    socket = require("socket")  --调用socket包
    ip = "192.168.3.184" --程序设置自己为Server端,设置自己的ip地址
    port = 8080 --设置端口
     
    server = assert(socket.bind(ip, port))  --按照上面的参数开启服务器
     
    ack = "ack\n"
    while 1 do
        print("server: waiting for client connection...")
        control = assert(server:accept())   --等待客户端的连接,因此这个程序只能同时连接一个TCP客户端设备
        while 1 do
            command, status = control:receive() --等待字符信号发送过来
            if command == "closed" then
                break
            end
            if command ~= nil then
                print(command)
                control:send(ack)
            end
        end
    end
    
    --lua的TCP通信发送字符串末尾必须添加\n
    --client
    socket = require("socket")  --调用socket包
    ip = "192.168.3.184"    --程序设置要了解的server端的ip地址
    port = 8080 --设置端口
     
    c = assert(socket.connect(ip, port))    --根据上边的参数连接server端,若未连接上直接报错
     
    c:send("GET\n") --首先发送一个信号
     
    while 1 do
        s, status, partial = c:receive()    --等待服务器发送过来的信号
        print(s)
        if status == "closed" then 
            break
        end
        str_send = io.read()    --等待输入要发送出去的信号
        str_send = str_send..'\n'
        c:send(str_send)
    end
     
    c:close()
    
    
    

    参考链接,期望对你有所帮助:https://blog.csdn.net/lby13951652332/article/details/107712426

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月30日
  • 已采纳回答 10月22日
  • 赞助了问题酬金15元 10月18日
  • 赞助了问题酬金15元 10月17日
  • 展开全部

悬赏问题

  • ¥15 如何对参数分析结构进行绘图
  • ¥15 做一个满足376和698规约的集中器程序
  • ¥50 python如何用抖音这个接口输入抖音ID查询用户信息
  • ¥30 关于移动Web网页使用TinyMCE富文本编辑器上传图片后的光标定位、压缩等几个问题如何解决:
  • ¥40 activeMq在同服务器centos8下消费很慢
  • ¥20 为什么zynq CAN IP 无法进入config配置模式,XCan_SelfTest函数失效?
  • ¥15 Pycharm中程序直接运行可以但进入调试报错
  • ¥15 MATLAB动图问题
  • ¥15 有段代码不知道怎么理解,const isToken = (config.headers || {}).isToken === false
  • ¥15 我的显卡支持CUDA最高版本是12.3,这个版本也支持VS 2022 17.0这种情况下如果我想下载CUDA11.8,需要下载旧版本的VS2022吗