Python套接字.错误: [Errno 61] Connection refused

标签 python sockets

我对套接字编程非常陌生。我正在尝试通过以太网连接到电源。我的 Mac (OS X) 连接到以太网交换机,电源也连接到该交换机。我有一些用 python 编写的代码,用于向电源发送/接收命令/消息。

交换机接口(interface)允许我为电源分配静态 IP。我在以下代码中将其用作目标 IP:

    def __init__( self, IP_TARGET ):
        IP = IP_TARGET
        PORT = 8080
        self.supply = socket.socket( socket.AF_INET, socket.SOCK_DGRAM )
        self.supply.connect( (IP, PORT) )

此代码运行没有任何问题。我的下一个目标是使用以下代码与设备进行通信:

    def getDeviceInfo( self ):
        self.supply.send('some command ')
        self.supply.recv(10)

使用一些打印语句,我将问题范围缩小到了 recv() 命令。 send() 不会引发任何错误。我收到以下错误

...in getDeviceInfo
self.supply.recv(10) socket.error: [Errno 61] Connection refused

我能够使用我使用以太网交换机分配给设备的 IP 对设备执行 ping 操作。我把防火墙关了。我在 www 上搜索了有关如何解决此错误的线索,但无济于事。有什么想法吗?

最佳答案

您指定的主机和端口上似乎没有任何东西在运行(例如,您可以使用 nmap 检查)。

在这种情况下,它是否期望收到任何东西并做出响应?

编辑:您的代码不起作用,因为在远程主机和您指定的端口(8080)中,必须有一些代码正在运行,监听消息并响应它们。如果该端口上没有任何运行,它显然会返回“连接被拒绝”错误。

换句话说,您创建了客户端,但没有创建服务器:P

关于Python套接字.错误: [Errno 61] Connection refused,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34299809/

相关文章:

c# - Marshal.PtrToStructure(并再次返回)和字节顺序交换的通用解决方案

linux - Docker守护程序套接字配置

python - 从 Pandas 数据框中按文件名提取列

python - 从不同的导入创建相同类的两个对象使它们看起来像不同的类

python - 在 Python 中使用 sys.stdin.readline 从 stdin 读取非常大的行

java - 调用 socket.bind() 时应用程序关闭 - Android 上的 JeroMQ

套接字编程中的 Java 拖放问题

将 uint16_t 转换为 char[2] 以通过套接字发送 (unix)

python - 通过python脚本向apache发送http请求

python - 创建不同类型的嵌套列表的快速方法: numpy, pandas或列表串联?