Ich entwickele gerade einen TCP-Client in Python, welcher konfigurierbar sein soll.
Dafür gibt der Anwender den Ziel-Host und den Port über eine Konsole ein.
Zuerst möchte ich nur den Ziel-Host behandeln [Der Prozess mit dem Ziel-Port ist mit bereits klar]
Der Ziel-Host soll in Form einer IP angegeben werden, z.B. 0.0.0.0
Da ich robuste Anwendungsprogrammierung bevorzuge, soll es eine Ausnahmebehandlung geben.
Wenn man also statt 0.0.0.0 einfach einen String abc eintippt, soll eine Fehlermeldung erscheinen
und dem Anwender dementsprechend mitteilen, dass er eine ungültige Eingabe gemacht hat.
Teilweise wird die Fehlermeldung ausgegeben, aber die richtige IP kann nicht eingegeben werden
bzw. es können andere Zeichenfolgen getippt werden, welche dann als die IP angesehen werden.
(Die weiteren Fehlermeldungen bekomme ich den Griff.)
Ich habe bereits daran gedacht, die eingegebene IP mit einem Muster zu vergleichen, möglicherweise
mit einer Prüfung der eingegebenen IP-Addresse eben mit einem Muster.
Ich habe keine Ahnung, wie man sowas sonst machen soll
Hat jemand eine Idee?
(Jeder Tipp könnte mir ja schließlich helfen)
Hier der Source-Code:
Code: Alles auswählen
import socket
while True:
try:
x = raw_input("Type target IP >")
x = float(x) # Float??? Welcher Datentyp entspricht z.B. 0.0.0.0 ?
break
except ValueError:
print("Please select a target like 0.0.0.0")
except SyntaxError:
print("Please select a target like 0.0.0.0")
print ("Target IP: " ,x)
# Targets werden festgelegt, erstmal soll nur der Host einstellbar sein, deswegen der Host als Variable
target_host = x
target_port = 9999
# Socket-Objekt erzeugen
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Client-Verbindung herstellen
client.connect((target_host,target_port))
# Einige Daten senden
client.send("Hi")
# Einige Daten empfangen
response = client.recv(4096)
print response
System: (Linux)Xubuntu IDE: Geany