2014-12-04 2 views
1

У меня возникли проблемы с подключением к моему розетка на localhost.
s.connect(('127.0.0.1', 4458)) (или «локальный») будет просто взять навсегда,
и в конце концов таймаут с TimeoutError: [Errno 110] Connection timed outПодключиться к гнезду на localhost

Он должен открыть порт 4458, другой сценарий будет посылать несколько символов в нем. Оба сценария должны работать на одном и том же малине Pi, тогда как «сервер» будет выполняться с sudo (для доступа к GPIO), а один без него - ботом чата.

У меня нет проблем с запуском сервера на Pi (с python 3.4.1) и клиентом на моем ноутбуке (mac, python 3.4.2).

Также он работает в обратном направлении, серверный скрипт на ноутбуке и клиенте на малине.

В качестве окончательного теста он работает как с сервером, так и с клиентом в указанном macbook.

Просто сервер + клиент на Pi не работает.

Программа замерзает

Мой укороченный код, если это помогает:

# $ sudo python3 server.py 

__author__ = 'luckydonald' 
import socket # server 
import time # wait for retry 
import threading 
class Server(threading.Thread): 
    port = 4458; 
    QUIT = False 

    def run(self): 
     s = socket.socket() 
     failed = True 
     print ("Starting Server on Port %d" % (self.port)) 
     while failed: 
      try: 
       s.bind(("", self.port)) 
      except Exception as err: 
       print(err) 
       print("Port assignment Failed. Retring in 1 second.") 
       time.sleep(1) 
      else: 
       failed = False 
       print("Success.") 
     while not self.QUIT: 
      print("Listening!") 
      conn, addr = s.accept() # freezes here 
      print("Got something: %s , %s" %(str(conn), str(addr))) 
      while not self.QUIT: 
       result = conn.recv(1) 
       print("Got result: " + str(result)) 
server = Server(); 
server.daemon = True 
server.run(); 
# server.start(); 

И для клиента:

# python3 cilent.py 
s = socket.socket() 
print("connecting...") 
s.connect(("localhost",4458)) # also tried "172.0.0.1" # freezes here 
print("connected!") 
s.sendall("+".encode("utf-8")) 
s.sendall("-".encode("utf-8")) 
s.close() 

Это приведет к следующим образом:

Picture of console output

ответ

1

Я не ожидал, что localhost/127.0.0.1 не работает. Ping results

У меня была некорректная запись в моем файле hosts.

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