From 5fb2a5de0fa6c6f3b8de03c624b2845f4e7bec8a Mon Sep 17 00:00:00 2001 From: Adriana Draghici Date: Tue, 19 Jan 2010 16:10:48 +0200 Subject: [PATCH] Server - send/receive pickle --- server/Client.py | 18 +++++++++++++----- server/Server.py | 28 +++++++++++++++++++++++----- 2 files changed, 36 insertions(+), 10 deletions(-) diff --git a/server/Client.py b/server/Client.py index 19e497b..999fb2e 100644 --- a/server/Client.py +++ b/server/Client.py @@ -1,5 +1,7 @@ import sys, socket -MSGLEN = 100 +import pickle + +MSGLEN = 1024 class MySocket: @@ -29,15 +31,21 @@ class MySocket: msg = msg + chunk print msg return msg - + # send a pickled dictionary + def send_dict(self, data): + dumped_data = pickle.dumps(data) + self.send_msg(dumped_data) if __name__ == "__main__": s = MySocket() - s.connect("127.0.0.1", 10001) - s.send_msg("hello") + s.connect("127.0.0.1", 10005) + #s.send_msg("hello") + + + dd = {'a':1, 'b':2} + s.send_dict(dd) s.recv_msg() - diff --git a/server/Server.py b/server/Server.py index cd28d47..c45b810 100644 --- a/server/Server.py +++ b/server/Server.py @@ -1,19 +1,37 @@ #!/usr/bin/env python -# TODO: listen, receive on port - import sys, os, socket +import pickle from daemon import Daemon + +# TODO: transmitere dictionar +# diferentiere pe tipuri de mesaje + + +BUFFER_SIZE = 1024 + +def recv_pickled_data(clientsock): +# while chunk: +# chunk = clientsock.recv(BUFFER_SIZE) +# data += chunk + data = clientsock.recv(BUFFER_SIZE) + + dd = pickle.loads(data) + return dd + def doServer(): #os.spawnvp(os.P_NOWAIT,"/usr/bin/transmission",[]) serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - serversocket.bind(("127.0.0.1", 10001)); + serversocket.bind(("127.0.0.1", 10005)); serversocket.listen(10) #max 10 requests + while(1): (clientsock, address) = serversocket.accept(); - clientsock.recv(100) - clientsock.send("Hello :)") + #clientsock.recv(BUFFER_SIZE) + recv_pickled_data(clientsock) + clientsock.send("ACK") + clientsock.close() -- 2.20.1