1

我们有一个进程挂起,并且 truss 显示它也尝试连接但失败并出现错误 ECONNREFUSED。手册页说以下内容,但为什么它一次又一次地被拒绝?

 ECONNREFUSED            The attempt to  connect  was  force-
                         fully  rejected. The calling program
                         should close(2) the socket  descrip-
                         tor,      and      issue     another
                         socket(3SOCKET) call to obtain a new
                         descriptor before attempting another
                         connect() call.

桁架-p 2145

/3: lwp_park(0x00000000, 0) (睡觉...)

/2: nanosleep(0xFFFFFFFF7B5FBE60, 0xFFFFFFFF7B5FBE50) (睡觉...)

/2:纳米睡眠(0xFFFFFFFF7B5FBE60,0xFFFFFFFF7B5FBE50)= 0

/2:so_socket(PF_INET,SOCK_STREAM,IPPROTO_TCP,“”,SOV_DEFAULT)= 17

/2: fcntl(17, F_SETFD, 0x00000001) = 0

/2: 连接(17, 0xFFFFFFFF7B5FBF40, 16, SOV_DEFAULT) Err#146 ECONNREFUSED

/2:关闭(17)= 0

/2: nanosleep(0xFFFFFFFF7B5FBE60, 0xFFFFFFFF7B5FBE50) (睡觉...)

/2:纳米睡眠(0xFFFFFFFF7B5FBE60,0xFFFFFFFF7B5FBE50)= 0

/2:so_socket(PF_INET,SOCK_STREAM,IPPROTO_TCP,“”,SOV_DEFAULT)= 17

/2: fcntl(17, F_SETFD, 0x00000001) = 0

/2: 连接(17, 0xFFFFFFFF7B5FBF40, 16, SOV_DEFAULT) Err#146 ECONNREFUSED

/2:关闭(17)= 0

/2: nanosleep(0xFFFFFFFF7B5FBE60, 0xFFFFFFFF7B5FBE50) (睡觉...)

4

2 回答 2

2

它有时会在这台机器上工作然后开始失败,还是每次都返回错误?它是否适用于某些机器而不适用于其他机器?

服务器程序可能已经崩溃或关闭了侦听套接字。在服务器上尝试“ netstat -af inet”以确保该端口上有一个处于 LISTEN 状态的套接字,并检查该端口上的当前连接数。服务器进程 id 上的 Solaris 命令“ pfiles pid ”也可用于验证服务器是否仍打开侦听套接字,并检查当前客户端连接数。如果正在建立许多连接,请确保listen()积压工作足够。将-vall选项添加到truss客户端上的命令以显示您正在连接的地址和端口,以确保它们是正确的。还可以尝试从服务器计算机建立相同的连接,以排除任何网络、防火墙或 NAT 问题。

于 2009-07-09T16:35:38.420 回答
-1

也许是防火墙?有很多潜在的原因。

于 2009-07-09T09:47:49.097 回答