【问题标题】:Connection refused Error with python socket连接被拒绝 python 套接字错误
【发布时间】:2019-12-22 10:06:57
【问题描述】:

我的硬件能够通过以太网或串行接收数据/命令。 我正在 python 中进行套接字编程以向硬件发送命令。一切正常,但是一旦我关闭套接字(它成功关闭),然后当我尝试重新初始化并在不同的程序中创建套接字时,它就会抛出连接拒绝 目前唯一的解决方法是从网络交换机上拔下以太网电缆并重新插入。然后它会再次工作,一旦套接字关闭然后想要重新打开它,就会弹出连接被拒绝的错误。

由于服务器代码在专有硬件上运行,我无权访问它。我只能配置硬件的端口和ip地址。

这是带有错误消息的程序的快照 还有wireshark快照

当我移除以太网线并重新连接时,它可以正常连接 看到这个快照..所以不确定 ngg 哪里错了

如果您有任何问题,请告诉我

【问题讨论】:

  • 错误信息已经明确告诉你,你的端口无法到达,请确保在你的服务器端开启。
  • 如何确保我的服务器端打开了 5049 端口?正如我所提到的,一旦我从交换机上断开我的硬件的以太网线并重新运行相同的程序,它就会连接..我通过 sock.close() 方法关闭,如图所示
  • 有没有其他方法可以确保端口打开(或)强制关闭 5049 端口
  • 如果您在 linux 平台上运行您的服务器,请尝试使用netcat,如果您可以登录到您的服务器,请尝试运行netstate

标签: python sockets tcp udp


【解决方案1】:

发生这种情况是因为服务器未在该 ip 和/或端口上运行。 这个错误很常见。试试看这个:

  • 确保没有其他相同的地址。这是 很重要。
  • 在启动客户端之前确保服务器正在运行。
  • 确保客户端可以访问服务器并且服务器可以接受连接。
  • 确保最大连接设置足够高以允许理想数量的连接。如果未启用,则所有 其他连接被启动
  • 此外,当您说要使其正常工作的唯一方法是重新连接以太网电缆时,这可能是因为您的连接已关闭。您必须设置一个循环,以便连接可以保持打开状态

【讨论】:

  • 感谢您的回复。与IP相同的网络上的IP地址相同的地址是硬编码的,我可以改变它,看看它是否有帮助。 2)当您说服务器正在运行时,我的服务器在硬件上并且它始终处于开启状态,所以我猜它是开启的 3)我在运行程序之前确实 ping 了 IP 地址并且有成功的 ping 4)我不确定这个设置在服务器端..我无权访问服务器脚本,我猜这个设置和套接字可重用性是在服务器端完成的。
  • 你没有得到什么?你试过所有这些东西吗?结果如何?
  • Sorry Joshua... 那是前一个,当我看到部分答案并感到困惑时
猜你喜欢
  • 2015-08-26
  • 1970-01-01
  • 2014-04-23
  • 1970-01-01
  • 1970-01-01
  • 2016-01-31
  • 2013-12-19
  • 2017-10-23
  • 1970-01-01
相关资源
最近更新 更多