Skip to content

Instantly share code, notes, and snippets.

@simonbru
Created April 26, 2018 19:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save simonbru/3c7543bf04493716ee043b822bc9ffa6 to your computer and use it in GitHub Desktop.
Save simonbru/3c7543bf04493716ee043b822bc9ffa6 to your computer and use it in GitHub Desktop.
Stream pickled python objects through TCP (unsafe)
#!/usr/bin/env python3
import pickle
import socket
import sys
def server():
serversocket = socket.socket(
socket.AF_INET, socket.SOCK_STREAM
)
serversocket.bind(('0.0.0.0', 8051))
serversocket.listen(5)
while True:
(clientsocket, address) = serversocket.accept()
print("New client")
socketfile = clientsocket.makefile('rb')
while True:
try:
obj = pickle.load(socketfile)
except EOFError:
print("Client disconnected")
break
print("Received object:", obj)
def client():
sock = socket.socket(
socket.AF_INET, socket.SOCK_STREAM
)
sock.connect(('localhost', 8051))
sockfile = sock.makefile('wb')
for i in range(3):
obj = ("Thing", i)
pickle.dump(obj, sockfile)
sock.close()
if sys.argv[1] == 'server':
server()
else:
client()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment