Lua 服务器Socket通信实例(转)

Posted 沧海一滴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lua 服务器Socket通信实例(转)相关的知识,希望对你有一定的参考价值。

 

local socket = require"socket"

local host = "127.0.0.1"
local port = "843"
local sever = assert(socket.bind(host, port)) --绑定
sever:settimeout(nil)   --不设置阻塞
local tab = {}
table.insert(tab, sever)

while 1 do
  local s
  s,_,_ = socket.select(tab, nil, nil)
  for k, v in ipairs(s) do
    if v == sever then
    local conn  = v:accept()  --连接
    table.insert(tab, conn)
 else
   c, e = v:receive() --接收
   if c == nil then
  table.remove(tab, k)
  v:close()
    else
  if e ~= "closed" then
    print(c)
    v:send("ok\n") --发送
  else
    break
  end
   end
 end
  end
end

--ack="ack\n"

--[[while 1 do
  local conn = sever:accept()
  if conn then
 print("accep")
  end
end--]]

服务器的几个主要动作如下: 
     1.创建监听套接字,绑定,监听; 
     2.创建工作者线程; 
     3.创建一个套接字数组,用来存放当前所有活动的客户端套接字,每accept一个连接就更新一次数组; 
     4.接受客户端的连接。

http://blog.csdn.net/chunleixiahe/article/details/41682891

以上是关于Lua 服务器Socket通信实例(转)的主要内容,如果未能解决你的问题,请参考以下文章

python Socket实例练习

linux socke编程实例:一个简单的echo服务器程序

网络编程基础day08:socke编程入门

linux socke编程实例:一个简单的echo服务器程序

[转] Socket通信实例

Java Socket入门