C unix 套接字。需要处理的信号

标签 c sockets unix signals

我必须在 AF_INET 套接字中处理服务器端和客户端的哪种信号?

最佳答案

根据您正在做的事情的方式,您可能必须处理SIG_PIPE,当连接被任意中断时可能会发生这种情况。

您不必处理任何其他信号。

如果您使用 select()poll() 或(个人偏好)epoll(),您应该检查是否有错误(例如, POLLHUP) 检查读/写可用性之前。

您还应该始终检查read()/write()/send()/recv()的返回值。如果出现错误,则返回 -1,但如果返回 0,则意味着另一端已断开连接。即,读取 0 仅意味着读取了 0 个字节,但连接仍然良好。事实并非如此。关闭 socket 。这是 POSIX 规定的。

关于C unix 套接字。需要处理的信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10469997/

相关文章:

linux - git 在多个文件名和文件夹名中查找并重命名一个字符串

c - 尝试释放以前的 malloc 时出错

c++ - 选项卡如何用于文本框?

c - 如何限制进程中的 RAM 消耗?

c - 使用 keyfromString 函数切换字符串的大小写

node.js - socket.io/socket.io.js - 未找到。 Node.js、express.js 和 socket.io 应用程序

python - 如何使用 exec 系统调用使用 C++ 的参数调用 Python 脚本

c - 链路范围 IPv6 多播数据包突然无法在 MacBook Pro 上路由?

c - 从套接字读取/写入意外行为

linux - nginx uWSGI 连接到 unix 套接字失败