Nja, da in den seltenstens Fällen nicht der "Server" eine Verbindung zum Client aufbauen kann,
also indem man auch in den Client einen "Server" einbaut, welche dann auf Verbindungen/Daten warten kann,
muß der Client eben entweder Pollen und ständig fragen ob was da ist, oder er baut eine "dauherhafte" Verbindung auf und über den Rückkanal kann der Server zurückschreiben.
Viele Frameworks haben Callbacks.
z.B. Datenbanken/Komponenten oder sowas wie mORMot und DataSnap.
Ohne Datenübertragung werden "dauerhadt" Verbindungen ab und an auch mal wieder getrennt (Timeouts),
drum wird auch da oftmals "gepollt", also ein "ich lebe noch" gesendet. (bekannt z.B. vom NOOP beim
FTP)
Außerdem kann man das "ich lebe noch" auch verwenden, um zu prüfen ob die Verbindung noch besteht, um sie notfalls wiederherstellen zu können.
Wenn aber keine "stabile" Netzwerkverbundung besteht (arschlangsames Modem, WLAN, Handy usw.), dann gibt es öfters mal Abbrüche, wodurch die Callbacks versagen (vor allem wenn nichts eingebaut wurde, um den Abbruch zu erkennen und zu beheben)
z.B. obwohl DataSnap intern "ursprünglich" eine Datenbankverbndung benutzt (dbExpress und später optional auch REST), sind/waren dessen Callback sehr unzuverlässig.