Добрый день. Подскажите, как получить переменную self.data из метода handle() в классе TCP_server_test(socketserver.BaseRequestHandler)? Пример взял из документации по socketserver. Спасибо.
Windows 7
Python 3.8
Python:
import threading
import socketserver
class TCP_server_test(socketserver.BaseRequestHandler):
def handle(self):
self.data = str(self.request.recv(1024), 'utf-8')
if self.data:
thread = threading.current_thread()
response = bytes("Поток {} с номером {}: {}".format(thread.name, thread.ident, self.data), 'utf-8')
self.request.sendall(response)
print("Инфа клиента:", self.data)
# Проверка сколько запущенных потоков
print("Запущенные потоки")
for thread in threading.enumerate():
print(thread.name)
else:
print("Нет соединения с клиентом")
return
class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
pass
if __name__ == '__main__':
HOST, PORT = "127.0.0.1", 5000
server = ThreadedTCPServer((HOST, PORT), TCP_server_test)
#srv = TCP_server_test()
while server:
server_thread = threading.Thread(target=server.handle_request())
server_thread.daemon = True
server_thread.start()
#print(srv.data)
Package Version
------------- -------------
-yqt5 5.15.0
click 7.1.2
pip 20.1.1
PyQt5 5.13.2
PyQt5-sip 12.8.0
pyqt5-tools 5.13.2.1.6rc1
python-dotenv 0.14.0
setuptools 49.1.0
------------- -------------
-yqt5 5.15.0
click 7.1.2
pip 20.1.1
PyQt5 5.13.2
PyQt5-sip 12.8.0
pyqt5-tools 5.13.2.1.6rc1
python-dotenv 0.14.0
setuptools 49.1.0
Windows 7
Python 3.8