Jetzt lerne ich über Netzwerkprogrammierung. Ich wollte mir eine recvall
Funktion schreiben. Meine Nachrichten werden über TCP-Sockets gesendet und enden immer mit dem \r\n
. Bei einigen Artikeln und Blog-Posts habe ich eine Methode gefunden, die ich nicht verstehe. Kann es einfacher geschrieben werden?Python: Ich verstehe diese Syntax nicht
def recvuntil(s, needle):
data = ""
while data[-len(needle):] != needle:
data += s.recv(1)
return data
Die Linie verstehe ich nicht: while data[-len(needle):] != needle:
. Es macht für mich keinen Sinn (aber es funktioniert). sollte eine negative Zahl zurückgeben und die Strings sind nummeriert ab 0
...
In Kürze 'data [-len (Nadel):]' alle Einträge von len (Nadel) von rechts bis zum Ende.In einer Liste minus Zahlen vom Ende, positive von Anfang an –
Mit anderen Worten, während das Ende der Daten nicht Nadel entspricht ... – Bull