我對套接字編程非常新穎。我正嘗試通過以太網連接到電源。我的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服務器還是什麼? –