Здравствуйте, klmn, Вы писали:
K>Добрый день! K>Есть клиент-серверное приложение, которое обменивается данными через сокеты (socket( AF_UNIX, SOCK_STREAM, 0)). K>Посылаются сообщения при помощи функций send(to) recv(from).
K>Вопрос: K>При получение указывается размер получаемого сообщения. Т.е. если в сокете есть 2 сообщения размерами 100b и 50b, а при считывании читается 150b, то получается конкатенация 2-ух сообщений, что совсем мне не нужно.
Указывается не размер получаемого сообщения, а размер буфера для приема. Это разные вещи.
K>Вопрос в том, как отделить сообщения друг от друга, что бы они могли быть разного размера??? K>Существуют ли стандартные пути?
Да. Свой протокол поверх tcp. Варианты:
1) заголовок с длиной сообщения
2) маркер конца сообщения