fighting
文章平均质量分 79
xuan_oscar
这个作者很懒,什么都没留下…
展开
-
IM 问题归纳
1 当接收处理机 接收包,插入消息队列时发生死锁 先对信号量操作 sem_wait( &msgNonEmpty);当队列未满时进行写入操作,否则阻塞 访问队列pthread_mutex_lock(&queue) sem_post(&msgNonFull) 释放队列资源 pthread_mutex_unlock(&queue) 释放队列锁 简单的读原创 2010-04-15 00:18:00 · 635 阅读 · 0 评论 -
哈夫曼编码
几天看了下哈夫曼树, 输出费了点功夫 贴代码 留被参考 /* 实现对26个字符的编码*/#include #include#include//haffman tree 节点数据结构typedef struct Node { //预编码的字符 char value; //父节点 struct Node * parent; struct Node * left; struct N原创 2010-04-18 00:42:00 · 490 阅读 · 0 评论 -
P2P之UDP穿透NAT原理并有UDP打洞的源码
首先先介绍一些基本概念: NAT(Network Address Translators),网络地址转换:网络地址转换是在IP地址日益缺乏的情况下产生的,它的主要目的就是为了能够地址重用。NAT分为两大类,基本的NAT和NAPT(Network Address/Port Translator)。转载 2010-04-23 13:48:00 · 1061 阅读 · 0 评论 -
eproll技术和非阻塞的读写规则
EPOLL技术在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:#def转载 2010-04-22 22:45:00 · 2479 阅读 · 0 评论