《终极网络服务端编程》的lua server 源码

原创 2017年09月01日 14:05:00


《终极网络服务端编程》的lua server 实现了lua脚本处理服务端逻辑+数据库

lua服务端 c++版服务端客户端(netserver,netclient)

lua服务端 就是 c++ netserver项目的lua脚本化版

运行效果 



dofile("script/PacketHandler.lua")
 
function StartUp( )
	print("StartUp")
 
	--连接sqlite3数据库
	env = luasql.sqlite3() 
	db = env:connect("test.db") 

	--启动网络
	net= G_NetInit("0.0.0.0",123)
	if net ~=nil then
		print(  "G_NetInit  ok" )
	else	
		print(  "G_NetInit  err" )
	end
	
 
end

TickCount=1
function Update( )
	print("Update "..TickCount )

	G_NetUpdate(net)

	print("当前连接数: "..G_NetConnNums(net) )

	db:execute [[ drop  TABLE people ]] 

	db:execute [[CREATE TABLE people(name text, sex text)]] 

	db:execute [[INSERT INTO people VALUES('张三','男')]] 
	db:execute [[INSERT INTO people VALUES('李四', '女')]] 
  

	rs =  db:execute [[SELECT * FROM people]] 
	row = fetch( rs )
	while row do
	  print (string.format("Name: %s, sex: %s", row.name, row.sex))
	  row =  next ( rs,row ) 
	end
	
	rs:close()


	--TickCount=TickCount+1
	--if TickCount>5 then 
	--	G_Exit()
	--end 
end
  
function Shutdown( )
	print("Shutdown")

	G_NetShutdown(net)

	db:close()
	env:close()
end


function fetch(c)
	return c:fetch ({}, "a") 
end
function next(c,row)
	return c:fetch (row, "a")
end
  
 
 
 
--数据接收
function OnRecvData(idx,data,len)
 
	print("------------OnRecvData--------------")
	print("------------idx["..idx.."]" )
	print("----------len["..len.."]--data[" .. data .. "]--------------")
	  
	ParsePacket(idx,data,len)
	  
end

-- 连接断开
function OnClose(idx)
 	print(  "OnClose idx:"..idx );
 
end



源码已经提交git   https://github.com/344717871/lua_svr/


基于Lua的游戏服务端框架简介

本文所述内容,并不涉及服务器集群的进程划分与拓扑结构. 为理解方便,我们假定服务器集群划分为如下的这些进程(跟鹅厂其他游戏项目大同小异): -            router: 数据转...
  • lalate
  • lalate
  • 2016年05月25日 15:31
  • 9824

Skynet服务器框架(四) Lua服务创建和启动剖析

前言:之前从Skynet启动过程,解读了skynet的启动部分C语言编写的底层源码,最后成功启动了引导的lua服务bootstrap.lua,接下来我们要尝试自定义一个lua服务,并让它启动起来。bo...
  • linshuhe1
  • linshuhe1
  • 2017年04月17日 14:13
  • 3250

《从零开始搭建游戏服务器》Java与Lua互相调用

前言: Lua是一种小巧的脚本语言,如今常用于游戏开发,特别是客户端开发,基本上都是基于Lua来实现热更新,在Unity开发中更有uLua(最新版改名为toLua)这样成熟的热更框架。这里我...
  • linshuhe1
  • linshuhe1
  • 2017年04月07日 17:58
  • 4414

Lua 服务器与客户端实例

 =============================================================== 服务器,main.lua =================...
  • u011269801
  • u011269801
  • 2014年12月02日 20:44
  • 3927

lua开发之--mysql和http模块

Mysql客户端lua-resty-mysql是为基于cosocket API的ngx_lua提供的Lua Mysql客户端,通过它可以完成Mysql的操作。默认安装OpenResty时已经自带了该模...
  • lucas421634258
  • lucas421634258
  • 2015年11月09日 23:36
  • 4080

OpenResty 之 Nginx lua开发(https)

准备工作安装需要的组件:1.lua5.1下载地址 http://www.lua.org/download.html 2.luaJit下载地址 http://luajit.org/ 3.下载ngin...
  • MrSunnyCream
  • MrSunnyCream
  • 2015年04月11日 20:52
  • 9193

《终极网络服务端编程》的lua server 源码

《终极网络服务端编程》的lua server 实现了lua脚本处理服务端逻辑+数据库 lua服务端 c++版服务端客户端(netserver,netclient) lua服务端 就是 c+...
  • smwhotjay
  • smwhotjay
  • 2017年09月01日 14:05
  • 303

c++ lua服务器框架

Humble是c++、lua语言开发的多线程服务器框架,网络底层使用libevent。 目前支持MQTT、WebSocket、Http等协议。 一、编译Humble windows使用vs2015...
  • xiaoyao778
  • xiaoyao778
  • 2017年01月23日 17:58
  • 1409

终极网络服务端编程--第一章【网络模块】

终极网络服务端编程--第一章【网络模块】 第一章 网络模块 1.1网络编程概述/基本socket api 很多网络游戏通讯都是客户端/服务器结构。 简写Client/Server...
  • smwhotjay
  • smwhotjay
  • 2017年08月31日 12:06
  • 252

原创《终极网络服务端编程》pdf+配套源码

历时3个多月,本人编写出《终极网络服务端编程》pdf电子书+配套源码。   本书 《终极网络服务端编程》 主要围绕网络服务端编程技术,编程语言使用c/c++ ,lua,从基础的网络通讯知识讲解,到实...
  • smwhotjay
  • smwhotjay
  • 2016年01月03日 18:12
  • 1605
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《终极网络服务端编程》的lua server 源码
举报原因:
原因补充:

(最多只允许输入30个字)