Поскольку вы используете C ++ Builder, вам действительно следует использовать компоненты Indy, они хорошо протестированы и просты в работе с набором сетевых компонентов ... И они уже встроены в C ++ Builder. Если вы используете C ++ Builder, использование Qt или boost может быть действительно проблематичным (конечно, в зависимости от версии C ++ Builder).
Indy компоненты: http://www.indyproject.org/index.en.aspx
С компонентами Indy вы получаете все компоненты, которые вам нужны практически для любого вида развития сети, который вам нужен. Это, безусловно, самое полное сетевое решение для C ++ Builder / Delphi, которое я видел.
Эта статья может показаться вам интересной: Разработка серверных приложений на основе TCP / IP с использованием Indy Components [1] показывает примеры в Delphi, но преобразование в C ++ должно быть тривиальным.
Помимо Delphi in Depth [2] книга является хорошим ресурсом и содержит также примеры на C ++.
Что касается разработки собственного протокола, почти невозможно ответить на этот вопрос однозначным ответом, это действительно зависит от ваших требований. Возможно, вам следует начать с вопроса, существует ли существующий протокол, который будет работать для меня, прежде чем, возможно, вы в итоге заново изобретете колесо.
[1] http://conferences.embarcadero.com/article/33256
[2] http://www.atozed.com/indy/book/index.en.aspx