def processIn(self):
        print('processIn')
        data = self.inq.get()
        while data != None:
            packet = ProxyMessage()
            packet.createProxyMessage(self.reqid, self.seq, self.fin, data)
            router.sendto(packet.msg, proxyAddr, service='socksProxy')
            self.seq = self.seq + 1
            data = self.inq.get()

        self.fin = True
        packet = ProxyMessage()
        packet.createProxyMessage(self.reqid, self.seq, self.fin, b'')
        router.sendto(packet.msg, proxyAddr, service='socksProxy')
    def handle(self, msock, msg, addr):
        packet = ProxyMessage()
        packet.decodeProxyMessage(msg)

        print('Socks Proxy message from ' + encodeAddress(addr) + ':')
        print(packet)

        reqid = packet.reqid
        seq = packet.seq
        data = packet.data

        if seq == 0:
            host, port = self.readRequest(data)
            conn = TcpProxyHandler(reqid, host, port, self, addr)
            conn.start()
            self.conns[reqid] = conn
        else:
            conn = self.conns[reqid]
            conn.inq.put(data)