Wie zu senden, eine Liste über TCP-sockets - Python
Möchte ich Sie senden eine Liste über TCP-sockets, aber ich kann nicht die genaue Liste beim Empfang von der server-Seite .
Um genauer zu sein sagen, dass ich diese Liste:
y=[0,12,6,8,3,2,10]
Dann schicke ich jedes Element der Liste wie diese:
for x in y :
s.send(str(x))
Nun den code von server zu empfangen, die Daten wie folgt aussieht:
while True:
data = connection.recv(4096)
if data:
print('received "%s"' % data)
else:
print('no more data from', client_address)
break
Das problem ist, dass wenn ich das Programm starte habe ich nicht bekommen, die gleiche Liste, aber so etwas wie dieses:
data=[012,6,83,210]
Außerdem, jedes mal wenn ich das Programm starte bekomme ich ein anderes Ergebnis für die Daten der Liste
Irgendwelche Ideen, was falsch läuft mit meinem code ?
InformationsquelleAutor Moras | 2016-07-16
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
pickle
oderjson
senden der Liste(oder jedes andere Objekt, für diese Angelegenheit) über sockets, die je auf der empfangenden Seite. Sie brauchen nichtjson
in diesem Fall als Ihre empfangende host mit python.Verwenden
pickle.loads(recvd_data)
auf der empfangenden Seite.Referenz: https://docs.python.org/2/library/pickle.html
pickle.loads(connection.recv(4096))
auf der empfangenden Seite, aber ich bekomme eine EOFError. Benutzt versuchen-außer aber die else-Anweisung wird nie wahrconnection.recv(4096)
innerhalb einer Schleife und Schleife, bis Sie den Eingang der vollständigen Daten.