I want to send a list through TCP sockets but i can't get the exact list when receiving from the server-side . To be more specific say that i have this list:
y=[0,12,6,8,3,2,10]
Then, i send each item of the list like this:
for x in y :
s.send(str(x))
Now the code of server to recieve the data looks like this:
while True:
data = connection.recv(4096)
if data:
print('received "%s"' % data)
else:
print('no more data from', client_address)
break
The problem is that when i run the program i don't get the same list but something like this:
data=[012,6,83,210]
Also, everytime i run the program i get a different result for list data
Any ideas what's going wrong with my code ?
Use pickle
or json
to send list(or any other object for that matter) over sockets depending on the receiving side. You don't need json
in this case as your receiving host is using python.
import pickle
y=[0,12,6,8,3,2,10]
data=pickle.dumps(y)
s.send(data)
Use pickle.loads(recvd_data)
on the receiving side.