Я думаю, что некоторые из вас значительно думают об этом. В каждую версию Windows уже встроен сервис, обеспечивающий именно эту функциональность! Это называется службой сообщений. Все, что вам нужно сделать, это убедиться, что эта служба включена и работает на всех клиентах.
(Хотя вы не указали в вопросе, я предполагаю, что из вашего выбора технологии все клиенты этой сети - Windows).
Вы можете отправлять сообщения с помощью этого средства из командной строки, используя что-то вроде этого:
NET SEND computername "This is a test message"
Команда NET SEND также имеет параметры для отправки по домену Windows или конкретным пользователям по имени независимо от того, где они вошли, или в каждую систему, подключенную к определенному серверу Windows. Эти параметры позволят вам легко избежать проблемы с подсетью, особенно если вы используете безопасность сети в вашей сети. (Вам может потребоваться, чтобы служба «Оповещение» была включена на определенных серверах, если вы отправляете сообщения через сервер, а не напрямую клиентам).
Программная версия этого API - NetMessageBufferSend () , которая довольно проста. При быстром сканировании P / Invoke.net будет найдена страница для этого API , которая предоставляет не только определения, которые необходимо вызвать в API, но и пример программы на C #!
Вам вообще не нужно писать код на стороне клиента. Вероятно, самым сложным будет выяснить лучший набор вызовов для этого API, который обеспечит полное покрытие сети в вашей конфигурации.
ETA: я только что заметил, что служба Messenger и этот API полностью исчезли в Windows Vista. Очень странно, что Microsoft полностью удалила такую функциональность. Похоже, что этот поставщик имеет совместимую замену для Vista.