***背景**** 我对TCP不太了解,所以我的问题可能有点基础。我正在尝试在接收数据的套接字上打开O_NONBLOCK。到目前为止,我已经尝试了两种不同的设置O_NONBLOCK的方法,itcl()和fcntl()。现在我正在尝试让fcntl()工作。
我的问题:您是应该在连接套接字之前还是之后设置O_NONBLOCK?
**我目前的fcntl()实现基于以下链接中的代码:
//set socket to NONBlocking
on = fcntl(Socket,F_GETFL);
on = (on | O_NONBLOCK);
if(fcntl(Socket,F_SETFL,on) < 0)
{
perror("turning NONBLOCKING on failed\n");
}
// DO CONNECT
rc = connect()
感谢您抽出时间查看此内容。
F_GETFL
的方式(在on = fcntl(...)
之后可以插入“检查”逻辑)。 - Anton Kovalenkoon = fcntl(Socket,F_GETFL);
和on = (on | O_NONBLOCK);
时,它可以正常工作。 - WorkerBeefcntl
吧?你能提供一个完整的示例吗? - Anton Kovalenko