from daemon import Daemon
-# TODO: transmitere dictionar
-# diferentiere pe tipuri de mesaje
-
+PORT = 10005
+HOST = "127.0.0.1"
BUFFER_SIZE = 1024
+states = {} # keeps track of what kind of message was previously receveid on a socket.
+
+WAITING_MSG_TYPE = 0
+WAITING_CONFIG_DATA = 2
+WAITING_START_DATA = 3
+WAITING_STOP_DATA = 4
+WAITING_STATUS_DATA = 5
+
+
def recv_pickled_data(clientsock):
# while chunk:
# chunk = clientsock.recv(BUFFER_SIZE)
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", 10005));
+ serversocket.bind((HOST, PORT));
serversocket.listen(10) #max 10 requests
while(1):
(clientsock, address) = serversocket.accept();
+
+ """ draft
+ if clientsock not in states:
+ states[clientsock] = WAITING_MSG_TYPE;
+
+ if states[clientsock] == WAITING_MSG_TYPE:
+ msg = clientsock.recv(BUFFER_SIZE)
+
+ if msg == Util.CONFIGURE_MSG:
+ states[clientsock] = WAITING_CONFIG_DATA;
+
+ else if msg == Util.START_MSG:
+ states[clientsock] = WAITING_CONFIG_DATA;
+
+ else if msg == Util.STOP_MSG:
+ states[clientsock] = WAITING_CONFIG_DATA;
+
+ else if msg == Util.STATUS_MSG:
+ states[clientsock] = WAITING_CONFIG_DATA;
+
+ else
+ clientsock.send("error: wrong message type " + msg)
+
+ else:
+ if states[clientsock] == WAITING_CONFIG_DATA:
+ config = recv_pickled_data(clientsock)
+
+
+ states[clientsock] = WAITING_MSG_TYPE
+ """
+
+
#clientsock.recv(BUFFER_SIZE)
recv_pickled_data(clientsock)
clientsock.send("ACK")