04 2012 档案

摘要:借鉴ucos消息队列中的实现,对内存池只提供信息的管理头部,由用户管理内存的分配与释放。借用了STL中的管理思路typedef union object_t{ union object_t *next; //下一个对象 char data[1];}object_t;注意其为union类型,next和data复用typedef struct ares_block{ size_t object_size; //单个对象的大小 size_t block_size; //占用的空间总数 size_t count; ... 阅读全文
posted @ 2012-04-26 22:28 westfly 阅读(925) 评论(2) 推荐(0)
摘要:NotePad++是绿色的。重装系统后需要自己添加右键菜单。网上给出的方案很类似——新建一个note.reg然后将下面的文字贴进去Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\Shell\NotePad++][HKEY_CLASSES_ROOT\*\Shell\NotePad++\Command]@="D:\\Program Files\\Notepad++\notepad++.exe \"%1\""notepad的路径要自己设置。但是说实话,在win下,我还真没有成功。于是win+r 阅读全文
posted @ 2012-04-13 23:08 westfly 阅读(448) 评论(0) 推荐(0)
摘要:UDP是无状态的,无法用TCP一样的并发服务器。我们可以用消息队列的方式模拟下。首先,我们看消息队列节点typedef struct msg_buf{ int sockfd; struct sockaddr_in their_addr; /* 连接对方的地址信息 */ int sin_size; char buf[BUFF_SIZE]; size_t len; struct msg_buf *next;}msgbuf_t;关于分配与释放的接口,比较习惯这样的方式了msgbuf_t *get_msgbuf(){ return (msgbuf_t... 阅读全文
posted @ 2012-04-13 22:45 westfly 阅读(1598) 评论(0) 推荐(0)
摘要:今天遇到一个奇怪的问题。linux环境下gcc,socket中UDP的recvfrom函数原型ssize_t recvfrom(int sockfd,void *buf,int len,unsigned int flags, struct sockaddr *from,socket_t *fromlen);网上给出的最基本的UDP—echo服务器测试基本的是可以的。关于recvfrom的代码如下 char buf[BUFF_SIZE]; struct sockaddr_in their_addr; int sin_size; memset(buf,len,0); ... 阅读全文
posted @ 2012-04-13 21:00 westfly 阅读(5457) 评论(0) 推荐(0)