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
最新文章
- #1094 : Lost in the City
- Bzoj2850 巧克力王国
- Jquery下拉列表添加移除数据
- 计划任务,机器码与注册码,Web服务
- 微信用户量破6.5亿 首超移动QQ
- HDU 1114 完全背包+判断能否装满
- 传说中的WCF(10):消息拦截与篡改
- c#的DateTime.Now函数详解
- 【转】在Ubuntu上下载、编译和安装Android最新源代码
- SPBF(队列优化的Bellman-Foord)
- 负载均衡集群之LVS配置命令
- 201521123102 《Java程序设计》第6周学习总结
- Java补码表和位移运算符
- P3396 哈希冲突
- python集合操作
- nginx+uWSGI+django+virtualenv+supervisor发布web服务器
- ZOJ 1532 Internship (Dinic)
- feign无法注入service
- uva11754 中国剩余定理+暴力搜索
- 写好shell脚本的13个技巧【转】
热门文章
- Python性能分析指南 - 技术翻译 - 开源中国社区
- Objective-c 算术函数和常量代表
- 【MongoDB】The description of index(一)
- Java面向对象基础二
- Leetcode_num13_Climbing Stairs
- 基于WEB 的认证防火墙的设计
- MySQL将表a中查询的数据插入到表b中
- java 处理时间的各种方式——获取时间——时间格式化
- 怎样让你的安卓手机瞬间变Firefox os 畅玩firefox os 应用
- unity3d由于Camera.main.transform报空引用错误的解决方案