Und zwar habe ich mich an einem kleinem Remotetool versucht. Dazu benutze ich TCP. Das klappt bei mir zuHause auch schon gut. Nur wie schaffe ich es jetzt, dass ich mich mit Pcs Verbinden kann, die nicht in meinem lokalen Netzwerk sind. Ich verstehe es nicht.
Code:
Code: Alles auswählen
# -*- coding: cp1252 -*-
#RemoteServer
import socket, os
#----------Server & Cleint binden----------
sock = socket.socket (socket.AF_INET, socket.SOCK_STREAM) #socket einbinden
sock.bind (("", 50001)) #Clients binden
sock.listen (1) #Auf Verbindung mit Clients warten --> max. 1
conn, addr = sock.accept() #Verbindung aktzeptieren
print addr
#----------Kommandos ausführen----------
while True:
    try:
        command = conn.recv(1024) #Nachricht des Clients erwarten
        if command == "EXIT": #beenden?
            conn.close() #verbindung zum Client beenden
            sock.close() #socket beenden
            print ">> Beendet..."
            break
        else:
            print ">> Empfangen: " + command
            command_run = os.popen (command).read() #ausführen
            if command_run:
                conn.send(command_run)  #senden
                print ">> Gesendet: " + command_run
            else:
                conn.send ("Keine Ausgabe") #senden
                print ">> Gesendet: Keine Ausgabe"
    except:
        continueCode: Alles auswählen
# -*- coding: cp1252 -*-
#RemoteClient
import socket, os
#----------Client----------
while True:
    try:
        ip = raw_input ("IP-Adresse: ") #Abfrage der IPv4 des Servers
        sock = socket.socket (socket.AF_INET, socket.SOCK_STREAM) #socket einbinden
        sock.connect ((ip, 50001))
        break
    except:
        print ">> Server nicht online"
        continue
#----------CommandBox----------
while True:
    try:
        entry = raw_input ("Fortfahren(Y\N): ")
        if entry == "Y" or entry == "y":
            command = raw_input (">>> ") #Kommando Eingabe
            try:
                sock.send (command) #Kommando senden
                print ">> Gesendet: " + command
            except:
                print ">> Senden fehlgeschlagen"
            command_run = sock.recv (1024) #Auf Antwort des Servers warten
            print ">> Empfangen: " + command_run
        else:
            sock.send ("EXIT")
            sock.close()
            print ">> Beendet..."
            break
    except:
        print ">> Error"Danke schonmal
Gruß Py4Fun
