From 9dca7047241d979848b99a55d71d450ce47567db Mon Sep 17 00:00:00 2001 From: Adriana Draghici Date: Tue, 26 Jan 2010 13:11:09 +0200 Subject: [PATCH] bt_comm: server and client stub send/recv msg --- bt_comm/server/Client.py | 38 ++++++++++++++++++------ bt_comm/server/Server.py | 62 +++++++++++++++++++--------------------- 2 files changed, 59 insertions(+), 41 deletions(-) diff --git a/bt_comm/server/Client.py b/bt_comm/server/Client.py index 999fb2e..df47042 100644 --- a/bt_comm/server/Client.py +++ b/bt_comm/server/Client.py @@ -1,8 +1,9 @@ import sys, socket import pickle - +from Util import * MSGLEN = 1024 - +HOST = "127.0.0.1" +PORT = 10001 class MySocket: def __init__(self, sock=None): @@ -22,6 +23,18 @@ class MySocket: if sent == 0: raise RuntimeError, "socket connection broken" totalsent = totalsent + sent + + def send_command(self, msg_type, config_data): + self.send_msg(msg_type) + response = self.recv_msg() + if response == ACK_MSG: + print "aici" + + self.send_dict(config_data) + print "am trimis" + response = self.recv_msg() + + return response def recv_msg(self): msg = '' @@ -31,6 +44,7 @@ class MySocket: msg = msg + chunk print msg return msg + # send a pickled dictionary def send_dict(self, data): dumped_data = pickle.dumps(data) @@ -39,14 +53,22 @@ class MySocket: if __name__ == "__main__": s = MySocket() - s.connect("127.0.0.1", 10005) + s.connect(HOST, PORT) + # test 1 #s.send_msg("hello") + # test 2 + #dd = {'a':1, 'b':2} + #s.send_dict(dd) + #s.recv_msg() + # test config + config_data = [{CLIENT:"tribler", FILE:"Tribler/Tools/cmdline.py", + RUN_TYPE:"script", + INTERPRETER:"python", PREFIX:"PYTHONPATH=.",SUFFIX:"", + UP_LIMIT_OPTION:"",DL_LIMIT_OPTION:"", PORT_OPTION:"-p", + LOG_DIR_OPTION:"-l",DL_DIR_OPTION:"-d"}] - dd = {'a':1, 'b':2} - s.send_dict(dd) - s.recv_msg() - - + response = s.send_command(CONFIG_MSG, config_data) + print response diff --git a/bt_comm/server/Server.py b/bt_comm/server/Server.py index f7348da..217e1b6 100644 --- a/bt_comm/server/Server.py +++ b/bt_comm/server/Server.py @@ -3,9 +3,9 @@ import sys, os, socket import pickle from daemon import Daemon +from Util import * - -PORT = 10005 +PORT = 10001 HOST = "127.0.0.1" BUFFER_SIZE = 1024 @@ -38,48 +38,44 @@ def doServer(): while(1): (clientsock, address) = serversocket.accept(); - """ DRAFT if clientsock not in states: states[clientsock] = WAITING_MSG_TYPE; if states[clientsock] == WAITING_MSG_TYPE: + print states[clientsock] msg = clientsock.recv(BUFFER_SIZE) - if msg == Util.CONFIGURE_MSG: - states[clientsock] = WAITING_CONFIG_DATA; - - else if msg == Util.START_MSG: - states[clientsock] = WAITING_START_DATA; - - else if msg == Util.STOP_MSG: - states[clientsock] = WAITING_STOP_DATA; - - else if msg == Util.STATUS_MSG: - states[clientsock] = WAITING_STATUS_DATA; - - else - clientsock.send("error: wrong message type " + msg) + msg_types = { + CONFIG_MSG: WAITING_CONFIG_DATA, + START_MSG: WAITING_START_DATA, + STOP_MSG: WAITING_STOP_DATA, + STATUS_MSG: WAITING_STATUS_DATA + } + if msg not in msg_types: + clientsock.send(ERROR_MSG +"wrong message type " + msg) + else: + states[clientsock] = msg_types[msg] + clientsock.send(ACK_MSG) + #else: + print states[clientsock] + if states[clientsock] == WAITING_CONFIG_DATA: + clients_data = recv_pickled_data(clientsock) - else: - if states[clientsock] == WAITING_CONFIG_DATA: - config_data = recv_pickled_data(clientsock) - - if states[clientsock] == WAITING_START_DATA: - config = recv_pickled_data(clientsock) + elif states[clientsock] == WAITING_START_DATA: + config = recv_pickled_data(clientsock) - if states[clientsock] == WAITING_STOP_DATA: - config = recv_pickled_data(clientsock) - - if states[clientsock] == WAITING_STATUS_DATA: - config = recv_pickled_data(clientsock) - - states[clientsock] = WAITING_MSG_TYPE - """ + elif states[clientsock] == WAITING_STOP_DATA: + config = recv_pickled_data(clientsock) + + elif states[clientsock] == WAITING_STATUS_DATA: + config = recv_pickled_data(clientsock) + + states[clientsock] = WAITING_MSG_TYPE + # clientsock.recv(BUFFER_SIZE) # recv_pickled_data(clientsock) - clientsock.send("ACK") - + clientsock.send(ACK_MSG) clientsock.close() -- 2.20.1