当前位置:  技术问答>linux和unix

(100)"断开的管道" 在Socket编程当中,如果我连续发送包,例如1000次,总会出现"断开的管道"的错误提示,请问如何解决

    来源: 互联网  发布时间:2015-09-18

    本文导语:  ? | 是不是网络不通畅。 要想出线这种情况程序不退出,建议加入signal(SIGPIPE, SIG_IGN); | broken pipe 往关闭的管道或是socket里面写东西就会产生SIGPIPE信号 | sleep一下 ...

?

|
是不是网络不通畅。
要想出线这种情况程序不退出,建议加入signal(SIGPIPE, SIG_IGN);

|
broken pipe
往关闭的管道或是socket里面写东西就会产生SIGPIPE信号

|
sleep一下

|
jwwu
说得对。产生这个错误就是往己关闭的写东西。也就是说有人在一端已关闭了socket。产生这个错误可能导致程序退出。
解决办法我们在程序中捕捉到这个信号。程序就不会退出了。
struct sigaction action;
action.sa_handler = function;
    sigemptyset(&action.sa_mask);
    action.sa_flags = 0;
    sigaction(SIGPIPE,&action,NULL);
function是捕捉到的处理函数。
你可以什么都不处理。
也可以,printf,打印出信息等等。
就可以了。等到产生这个信号时。程序就不会退出了。



    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • S/C模式下,SERVER端如何判定某一CLIENT是否已断开(包括非正常断开)?
  • socket 断开连接如何再恢复连接
  • socket连接总断开?
  • 请教:关于[linux/unix环境下连接到Oracle数据库后断开连接]的问题
  • socket 断开
  • 客户端 socket 断开后 服务器端系统如何处理?
  • 请问如何在服务器端获得 socket 断开的消息?
  • 使用 epoll或poll ,如何确定 与客户端的链接断开 ?
  • 后台进程和与控制终端断开的进程是一个意思吗?
  • Linux下的Socket通信如何断开连接的端口从而实现重复使用该端口
  • 如何检测网线是否断开?
  • linux 有线连接了却显示有线连接断开是怎么回事
  • 系统挂盘会莫名的断开
  • 网线断开后,send函数返回值大于0,而不是-1
  • 两个 Socket 互相通信,其中一个如何判断另一个 Socket 是否已经意外断开了连接?
  • usb设备从断开至重新连接成功这整个过程中的耗时?
  • 急问:怎么判断一个非阻塞的socket已经断开了?
  • socket问题,当客户端关闭或者实际链路断开后服务器端怎么判断?
  • SOCKET调用close断开连接的时候回主动发FIN ACK包吗?
  • HP-UX系统,用户应用程序通过TELNET联到服务器,突然全部断开...


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3