【发布时间】:2012-02-14 00:46:54
【问题描述】:
我想知道 tcp socket 是否可以立即报告任何损坏的管道错误。目前,当服务器出现故障时,我正在客户端捕获 sigpipe 信号......但我发现生成了 sigpipe 信号 只有在第二个消息从客户端发送到服务器之后。这可能是什么原因?如果另一个套接字端出现故障,那么第一次发送必须返回 sigpipe .. y 不是立即生成的信号..?? 这种特殊行为有什么可能的解释吗?以及任何可能的方法来解决这个问题??
【问题讨论】:
-
我觉得你要求太多了...
-
你如何检测到服务器宕机了?顺便说一句,它是如何下降的?
-
尝试从连接中读取时会发出关闭连接的信号。
-
@jpalecek .. 好吧,我通过 ctrl +c 选项杀死了服务器进程.. 在实时应用程序中,它可能由于多种原因而停机并启动..
-
当客户端发送 msg 时,它会收到 SIGPIPE 错误,但仅在执行 send() 两次之后.. Read 也会生成,但当前客户端没有读取任何内容...@todda ... LMAO! !
标签: c++ sockets tcp send sigpipe