Я использую Linux и пытаюсь отправить длинное сообщение через send ().Сообщение имеет размер 1270 байт, но мое клиентское приложение получает только 1024 байта.
Поскольку 1024 байта - это такое удобное число, я предполагаю, что send () может отправлять только 1024 байта за раз.Я посмотрел справочную страницу для отправки, но все, что она говорит о длинных сообщениях:
Когда сообщение не помещается в буфер отправки сокета, send () обычно блокируется, если только сокетбыл переведен в неблокирующий режим ввода / вывода.В неблокирующем режиме в этом случае произойдет ошибка EAGAIN или EWOULD-BLOCK.Вызов select (2) может использоваться, чтобы определить, когда можно отправить больше данных.
Я использую режим блокировки, и страница руководства не говорит, что делать.Мой точный вызов для отправки выглядит следующим образом: send(socket, message, strlen(message), 0);
Нужно ли разбивать строку на 1024-байтовые куски и отправлять их отдельно?И как мой клиент справится с этим?Если моему клиенту нужно что-то сделать, я просто упомяну, что он на Java и использует InputStreamReader для получения данных.