Уведомления

Группа в Telegram: @pythonsu

#1 Июль 7, 2020 10:50:05

regnor
Зарегистрирован: 2017-08-16
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Как вытащить данные из метода handle() в socketsеrver

Добрый день. Подскажите, как получить переменную self.data из метода handle() в классе TCP_server_test(socketserver.BaseRequestHandler)? Пример взял из документации по socketserver. Спасибо.

 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("Нет соединения с клиентом")
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)

Офлайн

#2 Июль 7, 2020 11:16:56

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2683
Репутация: +  182  -
Профиль   Отправить e-mail  

Как вытащить данные из метода handle() в socketsеrver

server.data Но атрибут self.data должен быть определён до вызова метода handle по этому в класс TCP_server_test стоит добавить что то вроде этого

 def __init__(self):
     self.data = None



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version