Это моё хобби ... Так бы сразу и говорил. Забудь все что я написал. Только обрати внимание на возможную проблему. В коде есть Код (Text): ... if ( buffer[0] < 0 ) // char не unsigned, => если <0, // то старший бит установлен ... если необходимо проверить старший бит, то надо проверять его, а не сравнивать с нулем. Afaik все C/C++ компиляторы имею ключи командной строки устанавливающие интерпретацию типа char как unsigned char.
q_q if ( buffer[0] < 0 ) работает так же устойчиво, как и например if ( buffer[0] & 128 ). Ну ладно, пора закругляться. Спасибо всем.