C++套接字发送/接收与写入/读取

C++ socket send/recv vs write/read

本文关键字:读取 套接字 C++      更新时间:2023-10-16

在套接字ssize_t send(int __fd, const void* __buf, size_t __n, int __flags)中,我们得到了这个__flags参数。我在整个连接中使用MSG_NOSIGNAL标志。有没有办法在write中实现此标志功能?由于我在整个连接过程中都使用此标志,因此可以在创建socket时设置它。随意提及是否有方法可以实现所有__flag功能。

No.写入带有 write 的套接字时,这与在flags参数设置为零的情况下调用send相同。

来自官方 POSIX 参考

如果 fildes 引用套接字,则 write() 应等效于 send(),没有设置标志。


但是,有一种方法可以永久"设置"此标志,那就是忽略SIGPIPE信号:

signal(SIGPIPE, SIG_IGN);