Грешка attributeerror __exit__ в питон как да се определи

Сергей Gornostaev. гнездо за внос на резби, socketserver

# Създаване на клас манипулатор мнения
клас ThreadedTCPRequestHandler (socketserver.BaseRequestHandler):

Def дръжка (само):
данни = (ул self.request.recv (1024), "UTF-8")
cur_thread = threading.current_thread ()
отговор = байта ( "<>. <>".format (cur_thread.name, данни)," UTF-8 ")
self.request.sendall (отговор)

клас ThreadedTCPServer (socketserver.ThreadingMixIn, socketserver.TCPServer):
"" "Сървърът за стрийминг. Достатъчно е да се създаде клас, без вътрешности" ""
минавам

# Създаване на прост "клиент"
Def клиент (IP, порт, messange):
с socket.socket (socket.AF_INET, socket.SOCK_STREAM) като чорап:
sock.connect ((IP, порт))
sock.sendall (байтове (messange, "UTF-8"))
отговор = ул (sock.recv (1024), "UTF-8)
печат ( "Сървърът отговори: <>".format (отговор))

ако __name__ == "__main__":
Порт # 0 избира неизползван порт автоматично
Гостоприемник, PORT = "Localhost", 0

сървър = ThreadedTCPServer ((HOST, порт), ThreadedTCPRequestHandler)
# С сървър:
интраперитонеално, порт = server.server_address

Съжалявам, че са коментирани с и с може да харесва, че тичам?

Владимир. TCPServer поддържа протокола за управление контекст като се започне с Python 3.6

Благодаря ви, трябва да опитате!

и какво те накара да го направите с?

Павел Денисов: Честно казано, аз просто обичам "синтактична захар")

Владимир. и лекомислено да го използвам? Ами тук се предполага, че има 3.6 в TCPServer. Така че това е едно нещо, ако го прочете на доковете или в примерите виждали, а другият - на случаен принцип влезе.