socket通信断开的可能有性有那些?

clear118 2006-03-17 05:44:36
通信程序中建立了个socket套接字。设置如下
struct linger TimeOut;
TimeOut.l_onoff = 1;
TimeOut.l_linger = 0;
setsockopt(ns, SOL_SOCKET, SO_LINGER,
char *)&TimeOut,sizeof(TimeOut));
接收的消息会存入消息队列

在几个服务器上可以正常运行。但再其中一台服务器上虽然能够通信,却只能连上1个钟头,其后必然断开。查询过系统设置,如下:
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=20
set semsys:seminfo_semmns=2000
set semsys:seminfo_semmni=100
set msgsys:msginfo_msgmnb=4200999
...全文
541 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gudulyn 2006-05-30
  • 打赏
  • 举报
回复
mark,关注,
逸学堂 2006-04-17
  • 打赏
  • 举报
回复
借用herryhuang(Herry)
看TCP的状态机:

1. 收到reset报文
2. 等待ACK超时
3. 接收到断链请求
4. 收到ICMP目的不可达报文

其他可能的原因包括:

1. 主机切换IP地址
2. 接口DOWN掉
3. 恶意攻击
goodluckyxl 2006-04-17
  • 打赏
  • 举报
回复
errno get一下最后的错误编码来看看
网线断掉 服务关闭 等等都有会产生
yuanchuang 2006-04-17
  • 打赏
  • 举报
回复
不懂,帮顶……
YFY 2006-04-11
  • 打赏
  • 举报
回复
端口有没有被其他程序抢占啊?
用端口监视的工具监视观察一下。

防病毒软件的干扰?

中间经过的路由器问题?

网络协议是否工作正常?可以让其他的通讯软件通讯测试一下。

编写的程序是否存在逻辑设计缺陷?

用自动重新连接机制来保证通讯意外中断情况下自行恢复。


wanguodu 2006-04-07
  • 打赏
  • 举报
回复
先定位是软件问题还是硬件问题再说:
出现socket断之后,分别从服务器和客户端ping对方,如果不通的话,说明必有有一方出现了底层问题:网卡故障or网口驱动有bug or 路由不通,如在局域网内还不能ping通的话可排除路由问题,那么换张网卡后再试一试吧。
jixingzhong 2006-04-07
  • 打赏
  • 举报
回复
socket通信断开,
大的方面可以分为 主动的 和 被动的

主动的话就是终止连接,等由机器指令断开
被动的话就是一些外部因素了,如网络故障 ........
lei001 2006-04-03
  • 打赏
  • 举报
回复
mark
herryhuang 2006-04-03
  • 打赏
  • 举报
回复
看TCP的状态机:

1. 收到reset报文
2. 等待ACK超时
3. 接收到断链请求
4. 收到ICMP目的不可达报文

其他可能的原因包括:

1. 主机切换IP地址
2. 接口DOWN掉
3. 恶意攻击
fierygnu 2006-03-22
  • 打赏
  • 举报
回复
那些设置不影响的。TCP?中断时有什么现象?errno是多少。

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧