Открываешь сокет и слушаешь его в цикле, отправляешь то что попросит
клиент -- сервер. Открываешь сокет, посылаешь серверу сообщение,
слушаешь что он ответит -- клиент. В питоне, жабе есть базовые классы,
на основе которых можно писать свой сервер.
// :(
QtNetwork: высокоуровневые классы для низкоуровневой работы с сокетами, UDP + TCP, IPv4+IPv6, клиент/сервер, С++, GPL2, кроссплатформенный. Зависимость только от QtCore (если волнует размер, то в сумме они 1-2 Мб).
По-хорошему, TCP, UDP, IPv4, IPv6 и проч. волновать в 90% случаев не должны. Есть библиотеки для remote procedures calls, вот пусть они и заботятся о гарантированной доставке, защиты от дублирования и прочей неинтересной фигне.