我对套接字编程非常新颖。我正尝试通过以太网连接到电源。我的Mac(OS X)连接到以太网交换机,电源也连接到交换机。我有一些用python编写的代码来向/从电源发送/接收命令/消息。Python socket.error:[Errno 61]连接被拒绝
交换机接口允许我为电源分配静态IP。这是我用作以下代码中的目标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的线索,以了解如何解决这个错误,但无济于事。有什么想法吗?
你在TCP或UDP协议上?尝试将'socket.SOCK_DGRAM'改为'socket.SOCK_STREAM'。 –
@铁拳 据我所知,UPD ='socket.SOCK_DGRAM'和TCP ='socket.SOCK_STREAM'。 我试图使所建议的修改,并得到下面的终端错误: 'getDeviceInfo self.supply.send(“一些命令”) socket.error:[错误32]分拆pipe' – resident
我不能确切地告诉,直到你让我们知道你在服务器端运行了什么,在这种情况下你的电源是HTTP服务器还是什么? –