За последние пару месяцев я работал над некоторыми реализациями сокетов на С++ и Java. Я написал небольшой сервер на Java, который обрабатывал бы и обрабатывал входные данные из флэш-приложения, размещенного на веб-сайте, и мне удалось успешно написать сервер, который обрабатывает входные данные от двухмерного игрового клиента с несколькими игроками на С++. Я использовал TCP в одном проекте, а UDP - в другом. Теперь у меня есть некоторые вопросы, которые я действительно не мог найти в сети, и я надеюсь, что некоторые из экспертов могут мне помочь.:)
Скажем, я хотел бы построить сервер на С++, который будет обрабатывать входные данные из тысяч автономных и/или веб-приложений, как мне тогда спроектировать мой сервер? До сих пор я обычно создаю новый и уникальный поток для каждого пользователя, который подключается, но я сомневаюсь, что это путь.
Также, как определить расположение пакетов, отправленных по сети; данные обычно отправляются по сети в двоичном или текстовом состоянии? Как вы обрабатываете сериализованные объекты при отправке данных на разные носители (например, сервер С++ для Flash-приложения)?
И, наконец, есть ли простая в использовании библиотека, которая обычно используется, которая поддерживает переносимость (например, разработка на машине Windows и развертывание в ящике Linux), кроме boost asio.
Спасибо.