Есть Сервер - Есть Клиент. Например, Клиент передает Серверу маасив байт, например 5000. НО сервер не знает, сколько он передает и приходится создавать массив больше чем 5000. Но поскольку клиент передает не вечно 5000, а разные значения угадать тяжело есть ли ответ? Поскольку я не знаю, сколько clientData (потому-то массив не создается статически)
я понимаю. НО вот я не хочу отправлять количество (время). Может как-то можно по другому. А то отправлять исче и размер. Но все, же отправлять размер это их переводить в байты и отправлять это вы имеете в виду?
Отправляешь данные частями фиксированного размера. В частях (пакетах) указываешь номер, чтобы принимающая сторона могла восстановить данные в единое целое. Как правило, нормально спроектированные протоколы не отправляют данные наугад, простым мусором. Всё должно быть чётко согласованно. Разбиение данных переменной длины на части фиксированной - один из вариантов.
Ещё вариант. Обозначим начало и конец пакета каким-нибудь супер битом 22(например). так же необходимо взять ещё один супер бит в рассмотрение 23(например) скажем что 22=>'23' '0' 23=>'23' '1' Так вот если мы хотим отправить сообщение "11 22 23 0 5 22" то прежде перекодируем его в "22 11 23 0 23 1 0 5 23 1 22". Так мы будем знать начало и конец пакета и однозначно преобразовывать принятое сообщение в исходное. И цикл работы программы будет следующий: пришло "22 принимаем принимаем ... принимаем 22" парсим, принимаем следующее сообщение.... Но при всём этом понятно, что передаваемое сообщение сильно набирает вес (и проще передавать размер).