Я написал цикл блокировки для чтения нежелательных сообщений. У меня не может быть символа конца для определения конца сообщения, но я очень доволен временем ожидания. VMIN=1
VTIME=5
Здесь, когда получаемые байты меньше размера буфера, я предполагаю конец сообщения.
Этот код работает, но не будет работать, если сообщение точно33 символа в длину. Есть идеи?
int l = 0;
string o = "";
char buf[33];
while(1) {
if (l && l < 33) {
// Messagge end, do something
}
l = read(fd, buf, 33);
o.append(buf, 0, l);
}