终端登录被互相踢掉,思路分析

背景:

       有两台终端要接入通信程序(设备当作客户端,通信程序作为服务端),当一台终端接入时是正常的,另一个终端接入时就会产生互相踢掉的现象,两个终端单独去连接通信程序也是正常的。

分析:

1.首先通过监听服务端的监听端口,查看是不是存在被踢掉的现象。

1
netstat -apn | grep 18003

 

 

如上图,可以看到相同的IP,端口却在变化,这就说明是有产生了“互相踢”(一个变化,从而导致另一个也变化)。

2.通过抓包工具分析,抓取当前主机与指定主机之间指定协议、指定端口的数据包

因为不知道是客户端先断开的连接,还是服务端先断开的连接,所以要通过抓包分析,到底是从哪里断开的连接。

在部署的通信程序的Linux服务器上,执行下面的命令,抓取IP为X.X.X.X(为其中一个终端),端口为 18003的网络包,并以更详细的方式输出到184.cap

1
tcpdump -i ens224 host X.X.X.X and port 18003 -vvvv -w 184.cap

 命令参考博客:https://www.cnblogs.com/golinux/p/11012781.html

 

3.通过TCP模拟工具,模拟两个终端发送报文,查看是否存在互相踢的现象。

 

总结:1.一般互相踢的现象,要么是IP端口冲突,或者唯一标识冲突。(我这个原因,主要是唯一标识的冲突,虽然12位数字,前10位相同,后2位不一样,但是程序里只处理了8位数字是作为唯一标识的,我的程序把这两个终端当作是一个终端了,从而造成了这个现象。)

 

posted @   扫地僧偷吃菜鸡  阅读(690)  评论(2编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示