Skip to content
Snippets Groups Projects
__init__.py 1.33 KiB
Newer Older
import socket
from .. import TWSProxy
class TWSServer:
    import socket

    def __init__(self,port,maxconn):
        self.port = port
        print('init tws proxy')
        print(port)
        self.maxconn = maxconn

    def run(self):
        serversocket = socket.socket(
                    socket.AF_INET, socket.SOCK_STREAM)
        print(serversocket)
        #bind the socket to a public host,
        # and a well-known port
        for port in range(self.port,self.port+1):
            try:
                print('try bind to {}'.format(port))
                serversocket.bind(('0.0.0.0', port))
                print("bind success")
        #become a server socket
                serversocket.listen(self.maxconn)
                break
            except Exception as e:
                print("bind fail")
                print(e)
                pass
        openconnections = []
        while 1:
            (clientsocket, address) = serversocket.accept()
            clientsocket.setblocking(True)
            tunnel = TWSProxy(clientsocket)
            tunnel.daemon = True
            tunnel.start()
            openconnections.append(tunnel)
            for c in openconnections:
                if not c.is_alive():
                    c.join()
                    openconnections.remove(c)