Vielleicht hilfts euch ja
Es könnte leichtere/schlankere Varianten geben, aber am Ende machts in meinem Programm auch nichts aus, wenns mal 10 Zeilen länger ist! Aber ich würde mich trotzdem über Verbesserungsvorschläge und ähnliches freuen.
Danke, Euer dodo.
CODE(SERVER):
Code: Alles auswählen
#Vorbereiten des Log-ins
#Socketvorbereitung
import socket
ss = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ss.bind(("",50000))
ss.listen(1)
#Logincodes
try:
while True:
komm, addr = ss.accept #akzeptieren der "Loginnachricht"("Syntax":"Benutzername|Passwort")
while True:
data = komm.recv(1024) #"Loginnachricht" wird in die Variable data kopiert
if not data:
komm.close() #Beenden, falls keine Nachrichten gibt.
break
dataf = open("loginUSR", 'r') #Öffnen der Datei, die die Benutzernamen enthält.
datar = dataf.read()#Lesen der Datei
datar = datar.split("\n")#Trennen der einzelnen Benutzernamen
dirda = data.split("|")#Trennen von Benutzername und Passwort in der "Loginnachricht"
if dirda[0] in datar:#Falls der eingegebene Benutzername in den existierenden Benutzernamen enthalten ist...
for i in range(0,len(data)-1):...wird getestet wo.
if datar[i] == dirda[0]:
x = i #Feststellen des Index(Ich weiß, dass es dafür ne Funktion gibt, fiel mir nur nicht ein)
b = open("loginPWS", 'r')#Öffnen der Passwortdatei
c = b.read()#lesen
c = c.split("\n")#aufteilen
if c[x] == dirda[1]:#index vom Benutzernamen = Index vom Passwort
komm.send("YOUCAN")#Aktzeptieren der Benutzerdaten
else:
komm.send("YOUCANT")#Falsches Passwort
else:
komm.send("YOUCANT")#Falsches Passwort
Code: Alles auswählen
#Vorbereiten...
import socket
ip = #Hier folgt die IP-Adresse des Servers
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((ip, 50000))
try:
while True:
ben = raw_input("Benutzername: ")
pas = raw_input("Passwort: ")
nachricht = ben + "|" + pas
s.send(nachricht)
antwort = s.recv(1024)
if antwort == "YOUCAN":
break
else:
print "Irgendwas war wohl falsch..."
print "Nu bist'e drin!"
s.close()
except:
print "keine Internetverbindung"
s.close()
finally:
try:
s.close()