[Errno 10061] Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte?

3 Antworten

Codeformatierung nutze.

Du willst Dich also mit einem Prozess auf dem lokalen Rechner verbinden. Läuft denn auf dem Port ein Prozess, der die Verbindungen entgegennehmen kann?


deckenguy 
Beitragsersteller
 02.01.2020, 19:35

Der andere Quelltext ist:

import os

import socket

s = socket.socket()

host = socket.gethostname()

port = 8080

s.bind((host, port))

print("")

print("Server is running on ", host)

print("")

print("Warte auf verbindung")

s.listen(1)

conn, addr = s.accept()

print("")

print(addr, "Verbunden")

# nach Verbindung

while 1:

    command = input(str("Command >>"))

    if command == "view_cwd":

        conn.send(command.encode())

        print("Command gesendet, warte auf antwort")

        print("")

        conn.recv(1024)

        print("Ausgefuehrt")

        files = conn.recv(500)

        files = files.decode()

        print("Command output :", files)

    else :

        print("")

        print("Command regognised")

0
KarlRanseierIII  02.01.2020, 19:39
@deckenguy

Bist Du Dir sicher, daß DU nur ein 1er Backlog willst?

Und auch nur einmalog eine Verbindung annehmen möchtest?

Mache mal ein netstat nachdem Du den 'lauschenden' Prozess gestartet hast.

P.S.: Du bindest ggf. nicht an 127.0.0.1, lasse DIr das Ergbnis von:

host = socket.gethostname()

anzeigen, denn das ist die Adresse, an die Du dann bindest.

1
deckenguy 
Beitragsersteller
 02.01.2020, 19:43
@KarlRanseierIII

Danke, ich hatte das gleiche gestern auch schon, also mit Desktop..., da wollte es nicht funktionieren.

Was muss ich da eingeben, wenn ich von einem anderen Netzwerk aus darauf zugreifen möchte?

0
KarlRanseierIII  02.01.2020, 19:50
@deckenguy

gethostname() wird an die primäre Schnittstelle binden - das ist soweit erstmal nicht falsch, nur bindet es eben nicht auf loopback, sodaß es nicht via 127.0.0.1 erreichbar ist. Du mußt dann beim connect die IP nehmen, an die auch gebunden wurde.

Ich empfehle Dir hier dringend Deine Kenntnisse zu IP zu vertiefen.

Für den Anmfang zum testen bindest Du an '*', also alle Interfaces, bzw.:

the empty string represents
INADDR_ANY
0

Hi ich habe das Youtube video auch gesehen und habe auch das Problehm.

Läuft denn auf Localhost ein Dienst der auf Port 8080 lauscht, so dass du dich auf den connecten kannst?


deckenguy 
Beitragsersteller
 02.01.2020, 19:31

import os

import socket

s = socket.socket()

host = socket.gethostname()

port = 8080

s.bind((host, port))

print("")

print("Server is running on ", host)

print("")

print("Warte auf verbindung")

s.listen(1)

conn, addr = s.accept()

print("")

print(addr, "Verbunden")

# nach Verbindung

while 1:

    command = input(str("Command >>"))

    if command == "view_cwd":

        conn.send(command.encode())

        print("Command gesendet, warte auf antwort")

        print("")

        conn.recv(1024)

        print("Ausgefuehrt")

        files = conn.recv(500)

        files = files.decode()

        print("Command output :", files)

    else :

        print("")

        print("Command regognised")

0