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

最新文章

  1. #1094 : Lost in the City
  2. Bzoj2850 巧克力王国
  3. Jquery下拉列表添加移除数据
  4. 计划任务,机器码与注册码,Web服务
  5. 微信用户量破6.5亿 首超移动QQ
  6. HDU 1114 完全背包+判断能否装满
  7. 传说中的WCF(10):消息拦截与篡改
  8. c#的DateTime.Now函数详解
  9. 【转】在Ubuntu上下载、编译和安装Android最新源代码
  10. SPBF(队列优化的Bellman-Foord)
  11. 负载均衡集群之LVS配置命令
  12. 201521123102 《Java程序设计》第6周学习总结
  13. Java补码表和位移运算符
  14. P3396 哈希冲突
  15. python集合操作
  16. nginx+uWSGI+django+virtualenv+supervisor发布web服务器
  17. ZOJ 1532 Internship (Dinic)
  18. feign无法注入service
  19. uva11754 中国剩余定理+暴力搜索
  20. 写好shell脚本的13个技巧【转】

热门文章

  1. Python性能分析指南 - 技术翻译 - 开源中国社区
  2. Objective-c 算术函数和常量代表
  3. 【MongoDB】The description of index(一)
  4. Java面向对象基础二
  5. Leetcode_num13_Climbing Stairs
  6. 基于WEB 的认证防火墙的设计
  7. MySQL将表a中查询的数据插入到表b中
  8. java 处理时间的各种方式——获取时间——时间格式化
  9. 怎样让你的安卓手机瞬间变Firefox os 畅玩firefox os 应用
  10. unity3d由于Camera.main.transform报空引用错误的解决方案