- 博客(5)
- 收藏
- 关注
原创 将字符串表示的IP地址转变为整形表示
早上做交接文档时候无意间翻到以前自己写的一个ip2long函数,猛然发现实现方式比我上个月面试时候上机写的好多了。然后脸上那个汗啊,心想当时面试官会不会无比的鄙视我 T-T。 当时面试上机的想法是,直接使用uint32_t变量来存ip地址,遍历字符串带".",然后去值,利用移位来将这个值填到uint32_t对应的位置上。这样的麻烦之处在于: 1,遍历字符串,还得记录每个"."出现的位置
2012-07-25 22:22:04 1300
原创 利用进程空间进行线程通信
/* * Returns a fresh connection queue item. */ static CQ_ITEM *cqi_new(void) { CQ_ITEM *item = NULL; pthread_mutex_lock(&cqi_freelist_lock); if (cqi_freelist) { item = cqi_freeli
2012-07-20 22:10:55 352
原创 socks server开发记录(1) 字节对齐引起的血案
前两天代码调通了,socks通讯协议都问题了,但连接建立好开始转包时候,无论是客户端还是浏览器都不能正确识别返回的http包。各种gdb跟踪,抓包和代码走读(主要review socks处理逻辑代码)都没发现问题,抓包倒是发现有个异常的ack包,tcp传输层后会带几个00。但是ack包又不是我的程序发的,整体都处于纠结状,尝试各种的方法,都没效。最后实在没办法,自己用python快速写了个sock
2012-06-06 23:43:06 1319
原创 socks server开发过程问题记录 (0)
在开发配置文件和HASTTABLE时候遇到的两个小问题: 0,成员变量是对象时,在定义是已自己进行了初始化(默认的无参数构造函数?)。因此在类初始化时,如果再进行赋值,实际上会触发析构函数,然后调用构造函数,但实际上是不会赋值的。因此此时成员变量就成了一个已经调用过析构函数的对象。为了更灵活控制成员对象,用指针会比较方便。(好奇怪一个问题,也不确定是不是这样,用指针变量就不会出现问题,gdb跟进
2012-05-28 00:07:57 951
转载 nonblocking connect()
<br /> 厄,nonblocking connect 到一个不存在的 ip:port,linux 下 select() writable 不会立即返回,而 FreeBSD 下会立即返回 writable。事实证明,还是需要如下检查的:static bool IsConnectingOK(int fd) { int error = 0; unsigned int sz = sizeof(error); int code = getsockopt(fd
2010-12-06 12:52:00 427
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人