Server - send/receive pickle
authorAdriana Draghici <adriana008@gmail.com>
Tue, 19 Jan 2010 14:10:48 +0000 (16:10 +0200)
committerAdriana Draghici <adriana008@gmail.com>
Tue, 19 Jan 2010 14:10:48 +0000 (16:10 +0200)
server/Client.py
server/Server.py

index 19e497b..999fb2e 100644 (file)
@@ -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()
-       
 
 
 
index cd28d47..c45b810 100644 (file)
@@ -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()