存档在 2012年7月

今天开始加入UNIX标签

2012年7月14日

细心的朋友会发现,我在网站最上方的标签中,新加了UNIX标签。

缘于我最近一段时间全面使用Linux系统办公,并且我还在Linux系统上安装了虚拟机,在虚拟机上安装了FreeBSD 9与Solaris 11。新一代的《古月》已经是完全在Linux下开发了,现可以正常编译并执行与Linux/FreeBSD环境下。可怜的Win环境已经完全不能编译了,尚在修正中。

也有可能程序员天生就喜欢命令行,看着命令行如代码一般。一开始还在win/linux之间反复切。后来终于可以痛下杀手将WIN分区完全格掉了。其实Linux桌面也还是挺好用的,相比Windows少的主要是娱乐方面。另外QQ/中国的网银也是一大麻烦。

封包的填充机制

2012年7月8日

1.充分自适应化

sock<<ID<<NAME<<SEX<<HP<<MP<<EXP;

优点:自动化强、简单、写着方便
缺点:有些时候依然无法自动化,而且会让程序员忽视数据的类型。客户端如与服务器端不一样,后果很严重。

2.严格指定格式法

sock.writeUint64(id);
sock.writeUTF8(NAME);
sock.writeBool(SEX);
sock.writeUint32(HP);
sock.writeUint32(MP);
sock.writeUint32(EXP);

优点:要求开发者严格指定数据类型,不容易出错
缺点:写着太累

sendfile函数在Linux/FreeBSD下的使用区别

2012年7月3日

#if HGL_OS == HGL_OS_Linux
#include<sys/sendfile.h>

inline int sendfile(int tfd,int sfd,size_t size)
{
return sendfile(tfd,sfd,NULL,size);
}
#endif//HGL_OS == HGL_OS_Linux

#if HGL_OS == HGL_OS_FreeBSD
#include<sys/uio.h>

inline int sendfile(int tfd,int sfd,size_t size)
{
return sendfile(tfd,sfd,0,size,NULL,NULL,0);
}
#endif//HGL_OS == HGL_OS_FreeBSD