У меня на сервере вот такой код
import socketserver
import threading
import time
#обработчик запросов
class TCPRequestHandler(socketserver.BaseRequestHandler):
def handle(self):
print('hb')
#инфа что мы получили
print(self.request.recv(1024))
print('!!')
class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
pass
if __name__ == "__main__":
#адрес и порт нашего сервера
HOST, PORT = "localhost", 9002
server = ThreadedTCPServer((HOST, PORT), TCPRequestHandler)
server_thread = threading.Thread(target=server.serve_forever)
server_thread.daemon = False
server_thread.start()
#чтобы сервер закрылся только при исключении, например прерывании с клавиатуры
while True:
try:
time.sleep(1)
except:
break
server.shutdown()
server.server_close()
когда я запускаю вот это на клиенте
import socket
import time
sock = socket.socket()
sock.connect(('localhost', 9002))
a='222'
sock.send(bytes(a, 'utf-8'))
a='333'
sock.send(bytes(a, 'utf-8'))
sock.close()
у меня получается результат
hb
b'222333'
!!
как сделать чтобы результат был
hb
b'222'
!!
hb
b'333'
!!
то есть разделялись сообщения для клиента?
и как нам понимать что клиент вдруг отключился(у нас это будет онлайн игра, и в случае если клиент вдруг взял и вырубил приложение, всмысле не кнопкой "закрыть приложение", где все будет аккуратно обработано, а взял и просто к примеру комп закрыл/вырубил из розетки и соединение исчезло?