2015-03-05 2 views
0

Я пытаюсь отправить сообщения от одной точки к другой, она работала некоторое время, а затем, когда я вернулся домой, не работает, и я получаю эту ошибку:ConnectionRefusedError: [WinError 10061] Соединение не может быть сделано, потому что целевая машина активно отказалась от этого

line 20, in connect 
    self.mySocket.connect((self.serverName, self.serverPort)) 
ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it 

Код для этого ниже. Я даже пытался запустить его на Mac, и у меня были подобные ошибки.

Client

import socket 

    serverName = "my_IP_Address" 
    serverPort = 12000 

    class User: 
     mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 

     def __init__(self): 
      self.serverName = serverName 
      self.serverPort = serverPort 

     def connect(self): 
      print("Trying to connect at " + str(self.serverName) + " on port " + str(self.serverPort)) 
      self.mySocket.connect((self.serverName, self.serverPort)) 

     def sendMessage(self, msg): 
      newS = msg.encode('utf-8') 
      self.mySocket.send(newS) 
      modifiedData = self.mySocket.recv(2048) 

     def closeSocket(self): 
      self.mySocket.close() 

     def listen(self): 
      self.mySocket.bind(('', self.serverPort)) 
      self.mySocket.listen(1) 
      print("We are ready to receive data on port " + str(serverPort)) 
      while (1): 
       print("** attempting ** ") 
       connectionSocket, addr = self.mySocket.accept() 
       rcvMsg = connectionSocket.recv(2048) 
       newMsg = "I have received: " + rcvMsg.decode('utf-8') 
       print(newMsg) 
       newMsg = newMsg.encode('utf-8') 
       connectionSocket.send(newMsg) 
       connectionSocket.close() 

       if (rcvMsg.decode('utf-8') == 'done'): 
        break 
      print("done listening") 

    def main(): 
     userA = User() 
     userA.listen() 

    main() 

Сервер

def main(): 
    userA = User() 
    userA.connect() 
    msg = "Hello from the lab" 
    while(msg != "done"): 
     userA.sendMessage(msg) 
     msg = input("please type another message to send: ") 
    print("done transmitting messages") 


main() 

Любое направление было бы весьма признателен!

+0

Windows .. да ....... – brunsgaard

+0

'Никакое соединение не может быть сделано, потому что целевая машина активно отказалась от него, это звучит для меня, как если бы пакеты были отклонены .. Возможно, это межсетевой экран. – brunsgaard

+0

Я исправил проблему с брандмауэром и изменил IP-адрес, и он работал для одного сообщения, но когда пользователю предлагается дать другое, все становится зависанием (а не сбой). – Dylan

ответ

1

Я отправлял слишком много запросов, и мой интернет-провайдер меня блокировал запрос (отсюда он отказался от подключения). Как только я переехал в новую сеть, я смог снова заставить его работать.

Смежные вопросы

 Смежные вопросы