使用TCP套接字复制损坏的管道错误

时间:2019-02-27 10:50:31

标签: c++ c tcp server pipe

我有一台tcp服务器。 这是代码

https://pastebin.com/paesU39X

在调试过程中出现以下错误:

Thread 10 "testserver" received signal SIGPIPE, Broken pipe.
[Switching to Thread 0x7f71feeec0 (LWP 5475)]
0x0000007fb6f13f70 in __libc_send (sockfd=50, buffer=0x7f71fee1e0, len=0,    flags=0)
at ../sysdeps/unix/sysv/linux/generic/send.c:27
27  ../sysdeps/unix/sysv/linux/generic/send.c: No such file or directory.

如何复制管道破裂错误以测试解决方案?

非常感谢您。

1 个答案:

答案 0 :(得分:2)

您可以使用kill将特定信号发送给进程,例如:

kill -s PIPE 3363

另一种解决方案是创建一个将提前退出的客户端,即它将在您的发送呼叫之前关闭套接字。