Вы не даете нам подробностей здесь!
Если ваша цель действительно сделать полнофункциональное и полнофункциональное приложение для чата, я предлагаю вам взглянуть на XMPP , который является открытым протоколом мгновенного обмена сообщениями. Здесь - список некоторых библиотек, реализующих его.
Если ваша цель - изучить сетевое программирование, и вас больше интересует, например, UDP, а не TCP, то UDP - плохой выбор для приложения чата, так как он мало гарантирует целостность данных или порядок. Ваши сообщения могут (и будут!) Приниматься в плохом порядке или даже отсутствовать. TCP делает это для своего рода проверки.
Между ними (очень простое приложение для чата) вы можете реализовать свой собственный протокол и использовать библиотеки, которые другие здесь предложили, такие как Boost.asio , ACE , POCO или даже wxWidgets и Qt , которые упростят обработку сокетов и также обеспечат то, что вам нужно для создания настольного приложения для последних 2.