Максимальный размер символов, которые могут быть отправлены через сокет TCP

У меня есть клиент C ++, который отправляет большую строку (минимальный размер 10 КБ) в приложение сервера Java после определенного интервала. В течение этого интервала приложение c ++ накапливает огромные байты данных и полностью отправляет их на сервер. Сервер также получает их за один раз.

Я хочу, чтобы размер строковой переменной всегда был меньше, чем string :: max_size. Как только размер строки приблизится к пределу, я отправлю эту строку на сервер и очищу строку, и только затем перейду к сбору оставшихся данных.

и если строка может содержать полные данные, все ли данные будут переданы от клиента к серверу в обязательном порядке (при условии отсутствия сброса соединения или любой другой подобной проблемы).

Может кто-нибудь сказать мне, если это способ продолжить?

0

Решение

клиент не будет знать, насколько велика строка, и не будет знать, когда прекратить прослушивание и начать обработку полученной строки.

Вам нужно отправить размер строки как int, а затем отправить данные.
Когда сервер получил все данные, он будет знать, что строка была получена правильно.

1

Другие решения

Да, но я предлагаю вам отправлять данные по мере их получения, а не добавлять задержку и тратить место на буферизацию. TCP позаботится об этом.

0

По вопросам рекламы [email protected]