全部博文(921)
发布时间:2013-01-08 17:03:44
当系统变慢时候,我们首先关注的可能是cpu的指标,有时候发现cpu使用率一点都不高,但是系统还是卡,这时可能就需要关心另外一个影响性能的东西–磁盘的IO性能。通过top命令中的%wa可以获取系统当前的io状态,如果该值居高不小,那磁盘的IO可能就有问题了。另外可以通过iotop命令来详细了解什么程序在读写磁盘,速度以及命令行,pid 等信息。如果系统不存在该命令,可以使用如下命令安装: yum -y install iotop 另外可以通过dd命令来简单测试一下磁盘写操作的性能,例如: dd if=/dev/zero of=test bs=64k count=4k o......【阅读全文】
发布时间:2013-01-01 16:18:03
文章来自:http://1234n.com/?post/fpkzlc 今天和阿灿为项目做一个多人在线行走的Demo,在Flash端遇到数据“粘包”的问题,下面记录一下原理和处理办法。 什么是“粘包”呢?粘包是指数据发送端希望接受端收到的数据包因为网络的“流”特性,使得连续的数据包的字节连贯在一起,导致接收端无法以数据包为单位处理数据的情况。 打个比方吧,A和B两个人通过一根水管互相传递水,他们通过每次接到的水的重量来判断对方表达的意思。如果A连续乘了不同重量的几杯水倒入水管中传递给B,B那一头打开水龙头接到的只能是连贯的水流,而不是一杯杯的水,数据在网络上传递也是同样......【阅读全文】
发布时间:2013-01-01 16:11:18
晚上做了下实验,Erlang端用{packet,2}格式,Flash端使用writeUTF和readUTF函数,正好格式一致,不需要自己解析两个字节长度信息。 Erlang端的代码: -module(server). -export([start/1, server_proc/1]). start (Port) -> {ok, Sock} = gen_tcp:listen(Port, [binary, {packet, 2}, {active, false}]), &nbs......【阅读全文】
发布时间:2013-01-01 16:00:53
文章来自http://1234n.com/?post/hvtqnu 前一次实验,我使用的是本地swf文件,所以没有遇到安全沙箱问题,但在实际环境中我们的Flash文件是通过URL引用的,这时候Flash的Socket通讯会受到安全沙箱机制的限制。具体原理是:Flash在尝试向服务器A发起Socket连接前,会先尝试连接服务器A的843端口,求情一个xml格式的安全策略文件,该文件告诉Flash是否有权限向服务器A发起Socket连接。所以,我们需要在Erlang端增设一个守候在843端口的安全策略文件服务器。 此次实验的Erlang代码: -module(se......【阅读全文】
发布时间:2013-01-01 15:33:40
erlang服务端,主要实现与flash客户端的连接、消息传递服务自带843端口服务解决flash9以上暴汗的安全沙箱问题chat.erl -module(chat). -export([start/0,manage_clients/1,stop/0,find/1]). -record(player, {id,socket,time=none}). start() -> chat_server:start(?MODULE,manage_clients). stop......【阅读全文】