Z
zbzb
Unregistered / Unconfirmed
GUEST, unregistred user!
2002年帮公司编写的内部即时聊天TM软件(类似QQ这样的软件,功能当然没有QQ强大),用Delphi7编写的,网络采用UDP协议,使用IndyUDP控件,客户端和服务端之间采用心跳包来维持对方的状态,心跳包大约在15-25秒之间(随机)互发发送一次,心跳包非常小,仅“包头+状态+当前时间”。
多年以来,该TM软件使用都很正常(登录用户稳定在300以上,分布在多个省市),但最近公司给各个分支机构部署了硬件防火墙,却碰到问题,就是该TM软件确会出现不同程度的自动断线,而且断线后就一直无法登录。
经过初步检查发现,客户端是因为无法收到服务器的心跳包而断线的;同时断线后,该客户端所在机器就无法访问服务端的对应端口!从而导致无法登录!但关闭客户端程序15分钟左右后再开启,则又可以登录了,但过一段时间还是会断线,就是说进入上述问题的循环了。
硬件防火墙目前试用过两个品牌共三个版本的(国产的一个,美国的CheckPoint的两个),其中仅CheckPoint的一个版本不会导致上述问题,其他的两种防火墙都会。CheckPoint防火墙方面认为应该是心跳包被认为是攻击包而被阻击所造成,但无法防火墙配置,而国产防火墙则说他们根本没有限制。
现在,领导要从程序的角度去解决问题,大家认为程序要如何入手?
多年以来,该TM软件使用都很正常(登录用户稳定在300以上,分布在多个省市),但最近公司给各个分支机构部署了硬件防火墙,却碰到问题,就是该TM软件确会出现不同程度的自动断线,而且断线后就一直无法登录。
经过初步检查发现,客户端是因为无法收到服务器的心跳包而断线的;同时断线后,该客户端所在机器就无法访问服务端的对应端口!从而导致无法登录!但关闭客户端程序15分钟左右后再开启,则又可以登录了,但过一段时间还是会断线,就是说进入上述问题的循环了。
硬件防火墙目前试用过两个品牌共三个版本的(国产的一个,美国的CheckPoint的两个),其中仅CheckPoint的一个版本不会导致上述问题,其他的两种防火墙都会。CheckPoint防火墙方面认为应该是心跳包被认为是攻击包而被阻击所造成,但无法防火墙配置,而国产防火墙则说他们根本没有限制。
现在,领导要从程序的角度去解决问题,大家认为程序要如何入手?