通过DataSnap实现TCP/IP连接

5
我用Delphi XE编写了一个多层应用程序套件,使用DataSnap(VCL应用程序)。
这将主要在我们公司内部使用,主要是为了取代过时的传真通信。
一切都运行良好,但我遇到了一个不愉快的情况:服务器机器位于路由器后面,因此具有内部网络IP。我在路由器中转发了所有端口211(DataSnap默认端口)的所有传入连接到服务器的内部IP,十次中有八次所有客户端都可以连接到服务器而没有任何问题。
问题是,剩下的两次出现各种连接错误(大多数是连接超时)。当出现这种情况时,我必须关闭并重新打开服务器应用程序或(一些)客户端,然后它才能正常工作。
现在我仍处于设计阶段,所以这只是一个麻烦,但是当我发布它时,我不想告诉每个人永远不要关闭应用程序(一旦它工作,就再也没有问题),也不要在每次出现连接问题时关闭和重新打开应用程序。
我该如何消除这个问题?
我只看了一下NetCat和SoCat,但对我来说,对于这种情况,它似乎过于复杂。还有其他解决方法吗?

2
当你遇到问题时,你是否检查了路由器日志以查看可能的原因? - Some programmer dude
到目前为止我还没有想到。我现在会去做并发布结果。谢谢。 - cipnec
再次感谢您,Joachim。我真是太愚蠢了,竟然没有检查路由器日志。无论如何,问题确实存在,因为路由器的内部防火墙有时会阻止我的应用程序。问题已解决! - cipnec
@JoachimPileborg - 你应该把你的评论作为答案,这样OP就可以接受它,而不会影响宇宙的平衡 :-) - Leonardo Herrera
1个回答

2
解决方案是关闭路由器的内部防火墙。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接