尝试连接Indy 10服务器时,客户端正在“拒绝连接”

时间:2013-01-14 12:56:54

标签: delphi connection indy

我们最近发布了一个使用Indy 10 TIdTCPServer在Delphi 2010中编写的服务器。远程现场工程师使用智能手机在预定义端口上连接到服务器。我们有一位特定的客户告诉我们,在一段时间(1天,2天)之后,客户在他的设备上获得了ECONNREFUSED(ConnectionRefused)。此时,没有一个远程工程师可以连接到服务器。任何人都知道为什么会出现这种情况?

非常感谢任何帮助。

亲切的问候

精读。

2 个答案:

答案 0 :(得分:1)

我最初的怀疑是OnConnection OnExecute或OnDisconnect的事件处理程序死锁。

您是否正在跨连接上下文(线程)进行核心同步?

但是你需要发布你的服务器代码,以便我们检查它。

答案 1 :(得分:1)

ECONNREFUSED表示两种可能的事情之一:

  1. 没有服务器套接字侦听连接的IP /端口。
  2. 有一个服务器正在侦听,但其待处理连接的积压已满,无法接受新客户端在此时连接的请求。
  3. 对于#1,请使用端口查看工具(例如NETSTAT或TCPView)验证服务器是否仍在运行,并且侦听端口仍处于打开状态且处于LISTENING状态。

    对于#2,检查服务器的OnListenException事件是否被触发,这表明服务器在接收来自其积压的连接时遇到问题。