import sys, socket
import pickle
-
+from Util import *
MSGLEN = 1024
-
+HOST = "127.0.0.1"
+PORT = 10001
class MySocket:
def __init__(self, sock=None):
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 = ''
msg = msg + chunk
print msg
return msg
+
# send a pickled dictionary
def send_dict(self, data):
dumped_data = pickle.dumps(data)
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
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
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()