zoukankan      html  css  js  c++  java
  • 体验luasocket

    上一篇文章中,自己为lua提供了一个简单的网络接口功能以实现以个echo服务。

    昨晚在网上查阅lua网络相关的库,发现了luasocket,于是也用luasocket实现了一个echo服务以作比较.

    要使用luasocket首先到http://luaforge.net/projects/luasocket/下载luasocket.

    下面是代码

    tcpechosrv.lua

    local socket = require("socket")
    local server = assert(socket.bind("*", 0))
    local ip, port = server:getsockname()
    print("Please telnet to localhost on port " .. port)
    local all_read = {}
    table.insert(all_read,server)
    while 1 do
      local ready_forread
      ready_forread,_,_ = socket.select(all_read,nil,nil)
      for k,v in ipairs(ready_forread) do
        if v == server then
            print(" a new commer")
            local client = v:accept()
            table.insert(all_read,client)            
        else
            local line, err = v:receive()
            if line == nil then
                table.remove(all_read,k)
                v:close()
                print("a user disconnect")
            else
                  print (line)
                  if not err then
                      --下面检查套接口是否可写,如果可写就把文本发送回去
                      local for_write = {}
                      table.insert(for_write,v)
                      local ready_forwrite
                    _,ready_forwrite,_ = socket.select(nil,for_write,1)    
                      if #ready_forwrite > 0 then
                          v:send(line .. "/n") 
                        print("send ok")
                      end
                  end
              end
        end
      end
    end
  • 相关阅读:
    深入理解多态..............................
    走过路过 不要错过..
    进军C#..
    员工打卡....
    MySQL
    MySQL
    MySQL
    MySQL
    MySQL
    MySQL
  • 原文地址:https://www.cnblogs.com/sniperHW/p/2607313.html
Copyright © 2011-2022 走看看