加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux TCP套接字崩溃

发布时间:2020-12-13 23:50:04 所属栏目:Linux 来源:网络整理
导读:我编写通过 Linux TCP套接字进行通信的网络应用程序.最近我注意到发送系统调用崩溃我的应用程序.当两个对手都启动时,它工作正常(我现在正在测试崩溃恢复).但是当一个对等体出现故障时,第二次崩溃会执行这段代码. fprintf(stderr,"out_tcp %dn",out_tcp); if
我编写通过 Linux TCP套接字进行通信的网络应用程序.最近我注意到发送系统调用崩溃我的应用程序.当两个对手都启动时,它工作正常(我现在正在测试崩溃恢复).但是当一个对等体出现故障时,第二次崩溃会执行这段代码.

fprintf(stderr,"out_tcp %dn",out_tcp);
    if(send(out_tcp,&packet,sizeof(packet),0) == -1) 
        fprintf(stderr,"send TCP error");
    fprintf(stderr,"after send");

Socket已准备好并已连接,并且在第二个对等体出现故障之前已执行多次.我希望这段代码返回-1值,但它只在输出上产生“out_tcp 11”然后应用程序退出.没有错误消息,没有发送的返回值.我在Valgrind下运行它,它说应用程序正常退出 – 没有错误/警告消息.

有谁知道如何调试它?使用工具?因为我没有信息,所以我非常坚持这一点.

提前致谢
Harnen

解决方法

看起来您的应用程序忽略了SIGPIPE.请参阅此主题以获取更多信息:

How to prevent SIGPIPEs (or handle them properly)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读