Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
令人惊讶的是,我很难找到答案。
我有一个 TCP 客户端套接字,我可以成功连接并通过它发送数据。但是,在发送数据后,我希望从服务器返回响应。我检查了我的套接字,它似乎处于非阻塞模式。
if (fcntl(sc->connect_d, F_GETFL) && O_NONBLOCK) { //non blocking }
启用阻塞模式的宏是什么,以便我可以更轻松地读取服务器响应?有人可以给我一个可以做到这一点的小片段吗?谢谢
if (fcntl(sc->connect_d, F_GETFL) && O_NONBLOCK)
上面的代码不正确。它应该是:
if (fcntl(sc->connect_d, F_GETFL) & O_NONBLOCK)
请注意,默认情况下,TCP 套接字是在阻塞模式下创建的,因此(假设您自己创建了套接字)您不需要做任何事情来“将其置于”阻塞模式。