Linux C++ TCP 套接字 - 启用阻塞模式

Linux C++ TCP Socket - Enable Blocking Mode

本文关键字:模式 启用 C++ TCP 套接字 Linux      更新时间:2023-10-16

令人惊讶的是,我很难找到答案。

我有一个 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 套接字是在阻塞模式下创建的,因此(假设您自己创建了套接字)您不需要执行任何操作来"将其放入"阻塞模式。