【发布时间】:2015-10-12 16:24:38
【问题描述】:
不久前我问了this 的问题。我很惊讶没有人提出任何答案,所以我很确定我的问题相当罕见。昨天,当我在自我诊断这个问题时,我开始把这些点联系起来。我的 Twisted TCP 服务器无法工作,IDLE 由于“套接字错误”而在启动时失败并返回消息:“IDLE 子进程:套接字错误:无法建立连接,因为目标机器主动拒绝了它”,我得到了这个当我尝试运行连接到(本地)TCP 服务器的(本地)TCP 客户端时出现同样的错误。
所以我昨天得出结论,这些不仅仅是个别问题,而是使用 Python 套接字创建和运行 TCP 端点的更大问题。请记住,我在本地网络上运行并在本地工作的 UDP 服务器和客户端,所以我认为这不是整个 Socket 模块的问题,而只是 TCP 方面的问题。
我电脑上的一些信息:Windows 64 位,运行 Python 2.7.9(出于某种原因,32 位),笔记本电脑通过(内置)无线网卡连接到网络。 ISP 是 Comcast(如果它有所作为),Router/Modem(它是一体式的)是 Comcast 提供的 TechniColor(同样,如果它有所作为的话)。
我尝试过的事情:
- 重置我的 .../etc/hosts 文件
- 2 个月前重新安装了 Python(尝试排除故障时)
- 关闭所有防火墙(我只有 1 个)
- 没有除 Microsoft Security Essentials 之外的防病毒软件
- 当我仍然安装 Bitdefender 时问题仍然存在,但我安装它是为了确定
我还在前面提到的上一个线程中查看了small troubleshooting session。我在使用 TCP 套接字时遇到的最大错误是:
socket.error: [Errno 10061] No connection could be made because the target machine actively refused it.
那么,有人知道这里出了什么问题吗?谢谢。
编辑: 看起来我错过了一些东西,端口是 45002,超出了默认 Windows 端口的范围,我很确定没有使用它,因为我已经能够运行该端口上的 UDP 服务器,结果良好。该端口也是端口转发的,以防万一。
【问题讨论】:
-
防火墙是否有可能阻止它?
-
你在哪个端口打开套接字?是否有其他东西已经在使用该端口?
-
@ThomasOwens 对不起,我知道我错过了什么,端口是 45002,超出了默认 Windows 端口的范围,我很确定没有人使用它,因为我已经能够运行该端口上的 UDP 服务器,结果良好。该端口也是端口转发的,以防万一。我会确保将此信息添加到 OP。谢谢。
-
@MeghdeepRay 我很确定防火墙不是问题。我尝试关闭防火墙并返回相同的错误。不知道 UDP 通信是否需要防火墙权限,但如果需要,它将进一步证明我的观点,因为我已经成功地在本地运行了 UDP 服务器/客户端。
-
另外,你是在客户端之前启动服务器吗?服务器是否设置为在客户端开始传输到该端口之前接受到端口 45002 的传入连接?
标签: python sockets networking tcp network-programming