lua里面的客户端服务器协议,Lua 服务器与客户端实例(转)
===============================================================
服务器,main.lua
===============================================================
local socket = require ( "socket" )
local tcpServer = nil
--创建指定端口的tcp server
local function createTCPServer( port )
-- Create Socket
local tcpServerSocket , err = socket.tcp()
local backlog = 5
-- Check Socket
if tcpServerSocket == nil then
return nil , err
end
-- Allow Address Reuse
tcpServerSocket:setoption( "reuseaddr" , true )
-- Bind Socket
local res, err = tcpServerSocket:bind( "*" , port )
if res == nil then
return nil , err
end
-- Check Connection
res , err = tcpServerSocket:listen( backlog )
if res == nil then
return nil , err
end
-- Return Server
return tcpServerSocket
end
--接受来自客户端的连接,并保存在tcpClient
local tcpClient = nil
local function acceptClient()
tcpServer:settimeout( 0 )
clientIn , _ = tcpServer:accept()
if clientIn then
tcpClient = clientIn
end
end
--接收已连接的客户端(tcpClient)数据
local function receiveLoop()
if tcpClient ~= nil then
local tcpClientMessage , _ = tcpClient:receive('*l')
if ( tcpClientMessage ~= nil ) then
print(tcpClientMessage)
tcpClient:send( "back:" .. tcpClientMessage .. "
")
end
end
end
local function main()
tcpServer , _ = createTCPServer( 8080 )
if tcpServer then
Runtime:addEventListener( "enterFrame" , acceptClient )
Runtime:addEventListener( "enterFrame" , receiveLoop )
end
end
main()
===============================================================
客户端程序,main.lua
===============================================================
local ui = require("ui")
local socket = require("socket")
local tcpClient = nil
--接收来自服务器的数据
local function receiveData()
if tcpClient then
tcpClient:settimeout(0)
local msg = tcpClient:receive("*l")
if msg then
print(msg)
end
end
end
--向服务器发送数据
local index = 0
local function btnListener(event)
index = index + 1
if tcpClient then
tcpClient:send("pack index:" .. index .. ".
")
end
end
--初始化
local function main()
local btn = ui.newButton{
default = "buttonBlue.png",
over = "buttonBlueOver.png",
onRelease = btnListener,
id = "btn"
}
btn:setReferencePoint(display.TopLeftReferencePoint)
btn.x = 10
btn.y = 100
--创建tcp连接
tcpClient = socket.tcp()
if tcpClient then
local ret = tcpClient:connect("192.168.1.2", 8080)
if ret then
tcpClient:send("hi, server, i'm client.
")
Runtime:addEventListener("enterFrame", receiveData)
end
end
end
main()
lua socket相关文档参见:http://w3.impa.br/~diego/software/luasocket/tcp.html
http://blog.csdn.net/chunleixiahe/article/details/41683427
lua里面的客户端服务器协议,Lua 服务器与客户端实例(转)相关推荐
- 华为云服务器协议,云服务器协议
云服务器协议 内容精选 换一换 云服务器可以远程连接,但弹性公网IP无法ping通.需要添加安全组的入方向规则并开启ICMP协议.登录管理控制台.选择"计算 > 弹性云服务器" ...
- 服务器协议连接,服务器远程连接提示由于协议错误,客户端无法连接到远程计算机...
服务器远程连接提示由于协议错误,客户端无法连接到远程计算机 更新时间:2012年04月02日 12:55:07 作者: 由于协议错误,客户端无法连接到远程计算机.请请重新连接到远程计算机.如果客户 ...
- 认证服务器协议,基于口令的客户端/服务器认证协议
摘要: Identity authentication is the precondition for secure communication between the client and the ...
- lua入门及wireshark自定义协议lua解码
文章目录 介绍 Lua 特性 lua环境搭建 Window 系统上安装 Lua Lua 基本语法 第一个 Lua 程序 交互式编程 脚本式编程 实例 注释 单行注释 多行注释 标示符 关键词 全局变量 ...
- 授权使用服务器协议,RADIUS服务器使用RADIUS协议完成对用户主机的认证、授权和计费时,RADIUS协议工作流程如下:(a)用户 - 赏学吧...
RADIUS服务器使用RADIUS协议完成对用户主机的认证.授权和计费时,RADIUS协议工作流程如下: (a)用户使用ADSL拨号上网: (b)BRAS从用户处获取用户名和口令,将其与用户其他信息( ...
- lua服务器客户端消息回调,lua服务器客户端消息回调
lua服务器客户端消息回调 内容精选 换一换 介绍使用同一VPC内弹性云服务器ECS上的phpredis连接Redis的方法.更多的客户端的使用方法请参考Redis客户端.本章节操作,仅适用于连接单机 ...
- TCP协议的服务器与客户端的程序设计(代码注释超详细)
在上篇博客中讲到了三次握手和四次挥手: Linux网络编程--TCP中的三次握手和四次挥手_神厨小福贵!的博客-CSDN博客服务器编程和客户端编程的大致流程如下:三次握手是在客户端中的connect中 ...
- MQTT客户端连接服务器协议,mqtt客户端和服务器长连接
mqtt客户端和服务器长连接 内容精选 换一换 介绍设置客户端和服务器的安全认证方式的相关参数.参数说明:表明与服务器建立链接后,不进行任何操作的最长时间.参数类型:USERSET取值范围:整型,0- ...
- mysql客户端不支持_MySQL 8.0 - 客户端不支持服务器请求的身份验证协议; 考虑升级MySQL客户端...
MySQL 8.0 - 客户端不支持服务器请求的身份验证协议; 考虑升级MySQL客户端 我是node.js和MySQL初学者,我刚开始设置并尝试一些基本代码.但是,由于某种原因,我甚至无法与服务器建 ...
最新文章
- k8s service type_k8s重器之Service
- WAMP_DEDE兼容配置
- python 爬虫框架_Python网络爬虫-scrapy框架的使用
- 使用dom4j解析XML文件
- c#操作Xml(八)
- CPU+GPU异构计算完全解析
- 最简单的卸载vrv方法_低端赤道仪粗对极轴最简单方法
- 阿里算法工程师模拟题2018/5/7
- intel 傲腾内存与SSD HDD的对比
- vue项目引入阿里巴巴矢量图标库图标
- jQuery手动触发事件
- 第四届“泰迪杯”数据分析技能赛-赛题A:《通讯产品销售和盈利能力分析》报告
- win10将用户文件夹改为英文
- php 三色排序,三色旗排序问题 | 学步园
- 人在囧途之tar命令
- 无线耳机哪个品牌好?四大国内蓝牙耳机品牌排行
- 印象笔记桌面便签关闭后找回
- html datatable修改行,DataTable根据条件修改行颜色和特定格颜色
- 百度网盘限速的2个解决小办法
- 3dmax骨骼的绑定
热门文章
- 深度学习标注工具LabelImg的使用方法
- poj 2263 最短路变形——最小边的最大值
- poj 2253 最短路变形——最大边的最小值
- Linux redis配置服务,Linux 安装 redis 并配置成 service 系统服务
- Windows10和Ubuntu双系统下用windows引导Ubuntu
- 正弦光栅的生成matlab,matlab做正弦光栅衍射的计算机模拟
- jvm垃圾回收机制_JVM的垃圾回收机制总结
- 微信开发者工具(deepin linux 还是建议使用deppin深度商店安装此软件)
- gatk过滤_重测序2--看了不后悔的gatk-变异检测
- 光电编码器的原理及应用场合_图解编码器应用,推荐收藏