Вызов функции с Server на Client в домашней сети интернета
Хотел бы реализовать программу на Visual Studio (Windows Form), в двух экземплярах. Одно приложение было бы сервером, другое клиентом.
Допустим клиент это просто процесс, без какого либо визуального управления (кнопок, картинок и прочего), а сервер с одной единственной кнопкой (отправить). Нужно сделать так, чтобы когда сервер нажимал на кнопку отправить, то у клиента открывалось окно с картинкой, или издавался звук, в общем просто вызывалась любая функция. В данном случае все MAC адреса и IP я знаю, так как программа нужна сугубо в домашней сети (localhost), меняются только устройства.
Ответы (1 шт):
Вопорс достаточно общий, поэтому в деталях с теорией:
- Для Windows Form используйте соединение между сервером и клиентом через сокеты.
- На серверной стороне создайте экземпляр класса Socket и используйте его для прослушивания входящих соединений.
- Когда клиент подключится, создавайте новый экземпляр класса Socket для общения с ним.
- Чтобы клиенту сообщить о том, что нужно открыть окно с картинкой или воспроизвести звук, серверу необходимо отправить сообщение, например, в формате JSON:
{"action": "show_image"}
{"action": "play_sound"}
Клиент должен всегда прослушивать входящие соединения от сервера и обрабатывать сообщения. В ответ на команды вызывать нужные методы.
Чтобы отправить сообщение, используйте метод Send класса Socket. Чтобы принять сообщение, используйте метод Receive класса Socket.