Сервер читает два запроса от клиента как один

Пишу онлайн-приложение на Андроид, с сервером на пайтоне. После вынесения функции GAME в отдельный поток на сервере началось непрерывное записывание запросов, и 2 запроса оказались в одной переменной (вместо get1<-'request1', get2<-'request2' - get1<-'request1request2'

Фрагмент с отправкой проблемных запросов от клиента:

override fun run() {
            activity.game_screen.side_width=side_width
            val message=JSONObject()
            message.put("c","fight")
            dout.writeUTF(message.toString())
            dout.flush()

            inputStream.read(ByteArray(4),0,4)

            val send=JSONObject()
            send.put("n",warrior_name)
            send.put("h",height)
            send.put("w",width)
            dout.writeUTF(send.toString())
}

Сервер:

import threading
import socket
import json


def with_client(client):
 threading.Thread(target=GAME,args=[client]).start()
 
 while True:
     if client[3]:
        for send in client[3]:
            conn.sendall(send)
        client[3]=None
     if not client[2]:
        client[2]=str(client[0].recv(1024),'utf-8')[2:]
        print('client:',client[2])  #'{'c':'fight'}{'n':'name','h':500,'w':1000}'
        client[2]=json.loads(client[2])
def GAME(client):
 while True:
  do_with_get(client[2])
  client[2]=None
  client[3]=you_must_send()

if __name__ == '__main__':
 sock=socket.socket(socket.AF_INET, 
                          socket.SOCK_STREAM,  
                          proto=0)
 sock.bind(('',8080))
 sock.listen(1000)

 while True:
    conn,addr=sock.accept()
    client=[conn,addr,None,['wait'.encode('utf-8')]]#conn,addr,get,send
    threading.Thread(target=with_client,args=[client]).start()

В чем может быть дело?


Ответы (0 шт):