Слишком общий вопрос.
Программы-клиенты просто выполняют проверку с заданной частотой (по таймеру). Например, почтовая программа может каждые десять минут делать запросы к почтовому серверу и если есть новые письма, загружать их.
На сайтах, при использовании
AJAX это работает аналогично. Загруженная в браузер страница периодически делает запросы к серверу (в подавляющем большинстве).
function Checker()
{
$.get("http://localhost/естьчо", // проверка наличия данных на сервере
function(result)
{
alert("что-то есть");
window.setTimeout(Checker, 5000); // вызов функции Checker через 5 сек.
});
}
window.setTimeout(Checker, 5000); // вызов функции Checker через 5 сек.
Возможен вариант, когда сервер сообщает клиентам о поступлении новых данных, но это чуть-чуть сложнее реализовать.