Connect to Socket auf localhost

Habe ich Probleme mit der Verbindung zu meiner eigenen Buchse auf localhost.
s.connect(('127.0.0.1', 4458)) (oder "localhost") wird nur ewig dauern,
und schließlich timeout mit TimeoutError: [Errno 110] Connection timed out

Sollte es port öffnen 4458, ein script senden dann einige chars. Beide Skripts sollen auf dem gleichen Raspberry Pi, während die 'server' wird ausführen mit sudo (für den Zugriff auf die GPIOs) und eine ohne, eine chat-bot.

Ich habe keine Schwierigkeiten, auf dem der server läuft auf dem Pi (mit python 3.4.1) und den client auf meinem Laptop (mac, python 3.4.2).

Auch, es funktioniert in umgekehrter Richtung, server-Skript auf dem laptop und client auf dem Raspberry.

Als letzten test, es funktioniert mit beiden, den server und den client auf dem besagten macbook.

Nur server + client auf dem Pi funktioniert nicht.

Das Programm friert

Mein verkürzter code, falls es hilft:

# $ 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();

Und für den AUFTRAGGEBER:

# 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()

Wird es zu diesem Ergebnis führen:

Connect to Socket auf localhost

InformationsquelleAutor luckydonald | 2014-12-04

Schreibe einen Kommentar