def run(self): self.port = Port(self.PORTNUMBER,printCMD=False) self.port.setEOL(self.EOL) self.port.setTimeout(0.01) self.port.open() try: while True: print ('waiting for connection...') acceptedSocket, addr = self.tcpSerSock.accept() print ('...connected from:', addr) serialToSocketThread = _SerialToSocketThread(self.port, acceptedSocket) socketToSerialThread = _SocketToSerialThread(self.port, acceptedSocket) serialToSocketThread.start() socketToSerialThread.start() # block the main thread, until the 2 children thread exiting serialToSocketThread.join() socketToSerialThread.join() print("Socket abort!\n") except ConnectionResetError: pass self.tcpSerSock.close() self.port.close()
class WGServer(threading.Thread): HOST = "" PORT = 55810 BUFSIZ = 1024 ADDR = (HOST, PORT) PORTNUMBER = 1 EOL = Port.EOL_CRLF def __init__(self): super().__init__() print ("Server Address:",gethostbyname(gethostname()),", Port:",self.PORT,"\n\n") self.tcpSerSock = socket(AF_INET, SOCK_STREAM) self.tcpSerSock.bind(self.ADDR) self.tcpSerSock.listen(5) def run(self): self.port = Port(self.PORTNUMBER,printCMD=False) self.port.setEOL(self.EOL) self.port.setTimeout(0.01) self.port.open() try: while True: print ('waiting for connection...') acceptedSocket, addr = self.tcpSerSock.accept() print ('...connected from:', addr) serialToSocketThread = _SerialToSocketThread(self.port, acceptedSocket) socketToSerialThread = _SocketToSerialThread(self.port, acceptedSocket) serialToSocketThread.start() socketToSerialThread.start() # block the main thread, until the 2 children thread exiting serialToSocketThread.join() socketToSerialThread.join() print("Socket abort!\n") except ConnectionResetError: pass self.tcpSerSock.close() self.port.close()