예제 #1
0
 def start(self, username, password):
     self.soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     self.soc.connect((self.server, self.port))
     log("client started")
     self.socthread = HellocConnection(self.soc, self.handle_message)
     self.login(username, password)
     self.get_friends()
예제 #2
0
 def start (self, username, password):
     self.soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     self.soc.connect((self.server, self.port))
     log("client started")
     self.socthread = HellocConnection(self.soc, self.handle_message)
     self.login(username, password)
     self.get_friends()
예제 #3
0
 def onClientAccepeted(self, client_soc, client_addr):
     log("Server clientAccepted", client_soc)
     client_port = ClientPort(client_soc, \
         logout_listener = self.client_logout)
     self.client_ports.append(client_port)
     socthread = HellocConnection(client_soc, client_port.handle_message, \
         soc_closed=client_port.handle_soc_closed)
     client_port.set_socthread(socthread)
예제 #4
0
class HellocClient:
    def __init__(self, server, port):
        self.server = server
        self.port = port
        self.soc = None
        self.socthread = None
        self.id = 0

    def newId(self):
        self.id += 1
        return self.id

    def login(self, username, password):
        msg = Message()
        msg.id = self.newId()
        msg.type = Message.LOGIN_REQ
        login = msg.login
        login.username = username
        login.password = password
        self.socthread.send_message(msg)

    def get_friends(self):
        msg = Message()
        msg.id = self.newId()
        msg.type = Message.GET_FRIENDS
        self.socthread.send_message(msg)

    def send_chat(self, userid, type=Message.Chat.TEXT, data="", filename=""):
        msg = Message()
        msg.id = self.newId()
        msg.type = Message.CHAT
        msg.chat.peer_id = userid
        msg.chat.type = type
        if data:
            msg.chat.data = data
        if filename:
            msg.chat.filename = filename
        self.socthread.send_message(msg)

    def send_file(self, userid, filepath):
        filename = os.path.basename(filepath)
        data = read(filepath)
        self.send_chat(userid, type=Message.Chat.FILE, \
            data=data, filename=filename)

    def handle_message(self, msg):
        #log("Client handle message", msg)
        if FileMessage.isfile(msg):
            FileMessage(msg).save()
        pass

    def start(self, username, password):
        self.soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.soc.connect((self.server, self.port))
        log("client started")
        self.socthread = HellocConnection(self.soc, self.handle_message)
        self.login(username, password)
        self.get_friends()

    def stop(self):
        log("Client stop")
        self.socthread.stop()
예제 #5
0
class HellocClient:
    def __init__ (self, server, port):
        self.server = server
        self.port = port
        self.soc = None
        self.socthread = None
        self.id = 0

    def newId(self):
        self.id +=1
        return self.id

    def login(self, username, password):
        msg = Message()
        msg.id = self.newId()
        msg.type = Message.LOGIN_REQ
        login = msg.login
        login.username = username
        login.password = password
        self.socthread.send_message(msg)

    def get_friends(self):
        msg = Message()
        msg.id = self.newId()
        msg.type = Message.GET_FRIENDS
        self.socthread.send_message(msg)

    def send_chat(self, userid, type=Message.Chat.TEXT, data="", filename=""):
        msg = Message()
        msg.id = self.newId()
        msg.type = Message.CHAT
        msg.chat.peer_id = userid
        msg.chat.type = type
        if data:
            msg.chat.data = data
        if filename:
            msg.chat.filename = filename
        self.socthread.send_message(msg)

    def send_file(self, userid, filepath):
        filename = os.path.basename(filepath)
        data = read(filepath)
        self.send_chat(userid, type=Message.Chat.FILE, \
            data=data, filename=filename)

    def handle_message(self, msg):
        #log("Client handle message", msg)
        if FileMessage.isfile(msg):
            FileMessage(msg).save()
        pass

    def start (self, username, password):
        self.soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.soc.connect((self.server, self.port))
        log("client started")
        self.socthread = HellocConnection(self.soc, self.handle_message)
        self.login(username, password)
        self.get_friends()

    def stop(self):
        log("Client stop")
        self.socthread.stop()