上一页 1 ··· 6 7 8 9 10
摘要: 网络游戏作为一种多人交互游戏,方便玩家在游戏中交流是很重要的。为了防止玩家在游戏中说违禁的东西,所有的聊天系统都需要对聊天信息进行过滤。本文描述了一种简单的基于DFA的算法用于过滤聊天内容中的违禁词,算法的运行复杂度,遍历输入字符串n,最多对每个字符执行一次二分查找lgn,所以最坏情况下也是O(nlgn).因为编写这段代码的时间很短,所以代码写得有点丑陋,但已经足以描述其主要思想了:#include #include #include #include #include "wordfilter.h"struct token{ char code; //字符的编码 ... 阅读全文
posted @ 2010-01-11 23:48 sniperHW 阅读(3473) 评论(2) 推荐(0)
摘要: concurrentlua的makefile只提供了unix下的版本,如果直接按make里面得拷贝路径安排文件在windows下是无法凑效的。这里我把我在windows下安装concurrentlua的经验分享一下。首先,我把lua的根目录设置为d:/lua.下载concurrentlua,luasocket,copas,coxpcall,对于luasocket的安装很简单,编译dll.在root(d:/lua,以后都以root替代),创建socket,mime两个目录,将socket.dll和mime.dll分别拷到对应的目录,然后重命名为core.dll.将ltn12.lua,mime.l 阅读全文
posted @ 2010-01-06 16:26 sniperHW 阅读(880) 评论(0) 推荐(0)
摘要: 上一篇文章中,自己为lua提供了一个简单的网络接口功能以实现以个echo服务。昨晚在网上查阅lua网络相关的库,发现了luasocket,于是也用luasocket实现了一个echo服务以作比较.要使用luasocket首先到http://luaforge.net/projects/luasocket/下载luasocket.下面是代码tcpechosrv.lualocal socket = require("socket")local server = assert(socket.bind("*", 0))local ip, port = server 阅读全文
posted @ 2010-01-06 11:51 sniperHW 阅读(13414) 评论(0) 推荐(0)
摘要: 为了向lua添加网络处理网络消息的能力,需要把网络相关的一些接口注册到lua中。这里采用生成C dll的方法。首先导出一个C函数,这个函数用于把所有的网络接口函数注册到lua中。注意这个dll中的函数要用纯C编写。netinterface.c/** author: kenny huang* email: huangweilook@21cn.com* brief: 向lua注册一简单的网络接口,在lua中实现简单的网络功能* 网络部分代码采用了windows网络编程中的一个例子*/#include <winsock2.h>#include <windows.h>#incl 阅读全文
posted @ 2010-01-05 15:53 sniperHW 阅读(5180) 评论(0) 推荐(0)
摘要: 在网络服务器的设计中,经常使用多进程/多线程.这就涉及到在进程/线程间共享数据.现在我们假设一个场景,一个进程/线程负责处理网络收发,一个或多个进程/线程处理收到的网络数据包.显然,我们可以在每一对协作进程/线程间添加一个队列,将数据添加到队列中,以实现两个进程/线程的协作.我们的消息队列主要的设计目标有三个:1)要可以使用在进程与进程和线程与线程之间.当在进程之间通信时,我们的消息队列将会被放在共享内存中.2)避免使用锁机制,其一方面原因是锁的开销较大,另一方面是因为,对于在共享内存中使用消息队列时.如果一个进程获得锁之后崩溃,另一个进程将得不到任何的通知.当它要获得锁的时候,将会阻塞在永远 阅读全文
posted @ 2009-06-09 16:23 sniperHW 阅读(2269) 评论(8) 推荐(0)
上一页 1 ··· 6 7 8 9 10