У меня есть сервер, который отправляет некоторые сообщения клиенту. Оператор print (trades) показывает, что программа чтения файлов правильно читает весь файл csv:
def send_past_trades(self):
with open('OTC_trade_records.csv',newline='') as f:
connectionSocket, addr = self.client
trades = f.read()
#print(trades)
connectionSocket.send(trades.encode())
Мой клиентский приемник выглядит так:
msg = b""
while(True):
print("Batch receiving")
tmp = client_socket.recv(4096)
msg += tmp
if len(tmp) < 4096:
print(len(tmp))
break
msg = msg.decode()
print(msg)
Сообщение всегда частичное. Я вижу, что оператор «Пакетный прием» печатается один раз, и когда оператор прерывания инициируется, длина последнего сообщения составляет 1228.
Другой момент заключается в том, что этот код прекрасно работает в моей локальной системе. Проблема возникает, когда я помещаю серверную программу на удаленный сервер. Существует ли вероятность того, что сервер вмешается в сообщение?
Примечание. Я пробовал разные способы решения проблемы, такие как отправка только сообщений размером 1024b в al oop. Все еще частичные сообщения получены.