-
Chris Hines authoredChris Hines authored
__init__.py 1.33 KiB
import socket
from .. import TWSProxy
import logging
class TWSServer:
import socket
def __init__(self,port,maxconn):
self.port = port
print('init tws proxy')
print(port)
self.maxconn = maxconn
def run(self):
logger = logging.getLogger()
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)