def __init__(self, endpoint, raw_message_handler):
    '\n        Parameters:\n        endpoint: a tuple (ip, port)\n        message_handler: a function defined as `def message_handler(msg)` to handle incoming message, msg is a string\n        '
    self.endpoint = endpoint
    self.raw_message_handler = raw_message_handler
    self.socket = None
    self.wait_connected = threading.Event()
    receiving_thread = threading.Thread(target=self.__receiving)
    receiving_thread.setDaemon(1)
    receiving_thread.start()
Parameters:
endpoint: a tuple (ip, port)
message_handler: a function defined as `def message_handler(msg)` to handle incoming message, msg is a string
def __init__(self, endpoint, raw_message_handler):
    '\n        Parameters:\n        endpoint: a tuple (ip, port)\n        message_handler: a function defined as `def message_handler(msg)` to handle incoming message, msg is a string\n        '
    self.endpoint = endpoint
    self.raw_message_handler = raw_message_handler
    self.socket = None
    self.wait_connected = threading.Event()
    receiving_thread = threading.Thread(target=self.__receiving)
    receiving_thread.setDaemon(1)
    receiving_thread.start()