Заниматься разборкой витс строки будет клиент, а не сервер, не надо путать . Нужен стандартный клиент чтобы проверить работу сервера, те клиенты которыя я подключал без проблем проглатывают и парсят витс строку с " мусором" как вы говорите. Так что это пустые разговоры про потоки , сокеты , синхронизацию. Ваш пример кода не годится , чтобы его проверить нужно ставить буст , а этот гемор совершенно лишний . Предложите код C/ C++ использующий win api , тогда посмотрим.
Вы писали:
Вы когда полноценный сервер напишите, то поймете, что ничего подогнать нельзя в десяток байт, разброс там будет намного больше. Далее, никаких нулей и никаокго мусора там не должно быть, иначе сервер будет заниматься тупой работой по очисте мусора, который программист не соизволил удалить. А если учесть что иногда используют СОМ порт на скорости 9600 для передачи витса, то там еще и траффик в пустую потреблять начнете своим мусором.
Теперь про блокирующие сокеты и вообще многопоточность. Так вот, по моей статистике хорошее понимание многопоточности присутствует примерно у 5% программистов. То что вы там написали и думаете что облегчили себе работу через создание потоков, так вот, нет, это заблуждение, вы просто не реализовали правильную синхронизацию. Создание нового потока для операционной системы это накладные расходы, если уж хотите использовать многопоточность, так работайте через пул потоков, что бы постоянно не пересоздавать потоки. И вот когда это все реализуете, потом поймете, что реализовать однопоточный сервер с неблокирующими сокетами проще. И главное он будет надженее.
У меня сейчас сервер для удаленного мониторинга работает в одном потоке, без проблем держит 10 ГТИ станций и к каждой станции по 10 клиентов. И при этом нагрузки на процессор почти нет. Мне кажется быстрее проблема с инет каналом будет, чем с процессором. Причем там комп стоит NUC, это такой офисный ПК, на селероне. Купили его тысяч за 15.