Есть 2 приложения: сервер и клиент. Клиент читает данные из файла, добавляет в начало свой заголовок и посылает пакет. Сервер не знает заранее сколько будет принято данных ( знает что точно не больше 5000), поэтому делает recv со значением буфера равным 5000. Но получается такая ситуация, что клиент посылает 5 раз по 1000 байт, а сервер читает за раз 5000 байт, тем самым склеивая посылаемые данные клиента, что делать не надо.
Так вот вопрос: как сделать так, чтобы я принимал ровно столько, сколько данных послал клиент, без какого-либо склеивания.
Пишу на C по linux, используемые функции recv/send, код приводить смысла не вижу, т.к там 10 строчек...
Используя TCP/IP -- никак. Указывайте длину данных в своём заголовке на сервере, а на клиенте получайте заголовок и читайте столько данных, сколько там записано.