我想创建一个非阻塞的连接。
socket.connect(); // returns immediately
为此,我使用另一个线程、一个无限循环和Linux epoll。示例伪代码如下:
// in another thread
{
create_non_block_socket();
connect();
epoll_create();
epoll_ctl(); // subscribe socket to all events
while (true)
{
epoll_wait(); // wait a small time(~100 ms)
check_socket(); // check on EPOLLOUT event
}
}
如果我先运行服务器再运行客户端,一切正常。但如果我先运行客户端,等待一小段时间后再运行服务器,则客户端无法连接。我做错了什么?也许可以用其他方式解决?