814840090 发表于 2011-4-11 08:39:49

rtt:如何让一个阻塞的TCP服务器线程退出阻塞?

如何让一个阻塞的TCP服务器线程退出阻塞?
弄了两天,没有个好方法。
谢谢。

ffxz 发表于 2011-4-11 08:59:47

设置超时

814840090 发表于 2011-4-11 09:11:00

1、在select里设置超时?还是?
我现在没有改为select的,又怎么退出?
2、
linux里可以通过发送信号使阻塞的线程退出,RTT里好像没有这种功能对吗?

谢谢。

814840090 发表于 2011-4-11 10:00:04

不用select的话,真没想出好招来。

ffxz 发表于 2011-4-11 12:07:12

试试类似如下的:
        int s;
        int timeout = 1000;
        lwip_setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout));


需要在lwipopts.h中打开
#define LWIP_SO_RCVTIMEO                         1

这个选项一般默认是打开的,你需要再check一下

undead 发表于 2011-5-13 00:09:10

回复【4楼】ffxz
-----------------------------------------------------------------------

感觉这种方式无法检测到连接错误或者对方主动断开连接的信号啊
页: [1]
查看完整版本: rtt:如何让一个阻塞的TCP服务器线程退出阻塞?