W przypadku komunikacji bezpośrednio po TCP/UDP, bez żadnych "chmurowych" serwerów, np PC<->ESP8266 komunikacja przebiega praktycznie jak po każdym interfejsie, czy to comporcie, bt czy spi. W przypadku architektury embedded <-> chmura <-> pc/telefon warto skorzystać z jakiegoś brokera, np. mqtt. Wtedy stawiamy sobie na serwerze broker mqtt, potem każde urządzenie (serwer/pc/telefon/embedded) subskrybujemy do danego tematu na serwerze i tak naprawdę najgorszą robotę przesyłania wiadomości odwala za nas rzeczony broker - a libki do mqtt są praktycznie na każdą platformę, zazwyczaj takie "eventowe" - przychodzi wiadomość, wywołuje się callback i w zależności jaka to wiadomość coś tam sobie w kodzie robimy. Analogicznie jak wywołanie slotu w qt.
EDIT: W QT 5.12 jest już MQTT natywnie 🙂 więc nie trzeba żadnych dodatkowych bibliotek.