当前位置: 技术问答>linux和unix
socket连接总断开?
来源: 互联网 发布时间:2016-10-05
本文导语: unix操作系统下,客户端和服务端的通信是在建立socket连接的基础上建立的,并且要求连接能长期建立而不断开,现在发现在运行过程中,总是过一段时间socket连接就断开了,想截取当时的tcp包看看是谁先断开的,为...
unix操作系统下,客户端和服务端的通信是在建立socket连接的基础上建立的,并且要求连接能长期建立而不断开,现在发现在运行过程中,总是过一段时间socket连接就断开了,想截取当时的tcp包看看是谁先断开的,为什么断开?但是断开的时间没有规律,不知道如何截取?请高手指点一下,有没有办法可以截取到断开时的tcp包,或者有没有别的办法分析一下断开的原因????
|
在server端 安装一个抓包工具(推荐wireshark) 先抓包分析 在定位程序 这样比较容易
|
怎么测得?本机也这样吗?
|
先从程序的业务逻辑入手分析可能的原因,断开的时候看看错误原因是什么
|
你自己的程序 你适当的加入一些输出日志的功能吧。
|
你应该先用log定位下看是哪里断开的
|
自己程序里面printf
获取每个关键的语句的返回值 如connect accept 等函数
|
断开的原因有很多,但是基本上都是程序主动调用close的,然后重连没有accept而造成,直接在程序里面所有退出代码加日志