
linux 网络编程
fancw
勤奋
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
select总是返回
select io 多路复用大家都很熟悉。 一般是 可读,可写,有异常,或者超时时select会返回。 但是当连接的对方程序退出时,select一直会返回。如果不进行处理程序会进入死循环。 比如可读集中有一个sockfd,对方已经退出。select会一直返回可读。 这时就应该判断一下读的字节数是否为零。如果为零证明对方已断。要消除这个sockfd。原创 2012-03-05 23:01:42 · 870 阅读 · 0 评论 -
结构体里的buf溢出浪费了我一天的时间
今天在做公司里的一个项目时,定义了一个业务处理接口。 大致原理是这样的,实际应用比这里复杂的多,为了简单化描述 struct transaction { char rxbuf[MAX_RX_LEN]; int (*cb)(); } rxbuf是从网络里接受数据的缓冲区。 当要调用cb时发现cb的内容变了。 经过调试发现是r原创 2012-03-05 22:50:32 · 2196 阅读 · 0 评论 -
怎么判断 TCP链接 是否断开了呢
今天用select IO复用时,发现 没有数据交互的情况下,select也返回(还未超时)。 查书得知,当fd在失去链接时select总是返回。并且read结果为空。 那么怎么判断tcp链接是否断开呢。查质料如下: * Seems like the most portable way of detecting connect() * failure is to call getpeern原创 2012-03-02 13:44:45 · 5831 阅读 · 0 评论