2012-05-29 69 views
5

我使用DataSnap(VCL应用程序)在Delphi XE中编写了一个多层应用程序套件。通过DataSnap实现TCP/IP连接

这会在我的公司内部使用,主要是为了取代过时的传真通信。

一切工作正常,但我遇到了一个不愉快的情况:服务器机器在路由器后面,所以它有一个内部网络IP。我(在路由器中)将端口211(DataSnap默认值)上的所有传入连接转发到服务器的内部IP,并且大约8次(所有客户端连接到服务器都没有任何问题)。

问题是,其余2次我得到各种连接错误(大多数连接超时)。当它这样做时,我必须关闭并重新打开服务器应用程序(一些)客户端,然后才能正常工作。

现在我仍然处于设计阶段,所以这只是一个麻烦,但是当我释放它时,我不想告诉所有人不要关闭应用程序(一旦它工作,它就会工作,没有更多问题),请关闭并在每次出现连接问题时重新打开应用程序。

我该如何消除这个问题?

我只有(只看)NetCat和SoCat,但对我来说这似乎矫枉过正。有没有解决这个问题的另一种方法?

+2

当您遇到问题时,您是否检查过路由器日志以查看它可能是什么? –

+0

到目前为止我没有发生过。我现在就做,并发布结果。谢谢。 – cipnec

+0

再次感谢你Joachim。我非常愚蠢的是不检查路由器日志。无论如何,问题确实存在,因为路由器的内部防火墙有时会阻止我的应用程序。问题解决了! – cipnec

回答

2

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