- 论坛徽章:
- 0
|
原帖由 xxldc 于 2008-4-15 17:04 发表
static int long_connect_cb(int udp_fd, struct sockaddr_in *addr, void *data)
{
struct sockaddr_in *seraddr = (struct sockaddr_in *)data;
LOG_MSG(3, 0, "start long connect" ;
seraddr->sin_addr = addr->sin_addr;//我就不明白,addr赋值给data,函数参数之间赋值,那为什么还要传两个参数进来,addr和data合并成一个参数不行嘛?
if (start_transmit(seraddr, &transmit_addr, long_connect_handler) < 0) {//transmit_addr还是个全局变量,怎么不用个锁保护一下呢?你这个是多线程呢
LOG_MSG(0, 0, "long connect server failed" ;
return -1;
}
return 0;
}
代码一句注释都没有,真是读死我了.怪不得你们公司不要你
实在佩服啊兄弟,少有人能静下心来看别人的代码,赞一个先,另外你的批评偶接受,以后再发上来的代码一定记着加注释
一、至于为啥没有合并一个参数,因为两个参数方便嘛,要不然我就得在外面把服务器传过来的数据和addr合一块儿了,你说麻烦吧
二、这个嘛其实是不用加锁的,因为这是客户端,transmit_addr只有一个,而且是不变的,另外呢还有一点,其实线程还没开始呢^_^
另外这个程序实在是没有精心雕琢,基本上是写完了调试着差不多能运行了就发上来了,真要的用的话肯定还有很多问题,不过怎么说也算是自己的一个作品吧,发上来给大家瞅瞅玩玩,有问题大家多指正,小弟一定虚心学习^_^
[ 本帖最后由 bierdaci 于 2008-4-16 17:49 编辑 ] |
|