Связь между двумя разными компьютерами с двумя разными приложениями

У меня есть два компьютера с ОС Windows, которые оба подключены к Интернету через Wi-Fi или модем 4G-LTE.

Первый компьютер отправляет электронные письма получателям программно, когда происходят определенные события, связанные с моим техническим проектом.

Проблема идет со вторым компьютером. Я хочу иметь возможность создать программу, которая изменит определенные вещи, такие как список получателей электронной почты, который первый компьютер использует для отправки электронной почты.

Два приложения C# на двух разных компьютерах, подключенных к Интернету, как общаться между ними? Любые предложения будут потрясающими. Надеюсь, я объяснил достаточно.

3 ответа

Решение

Есть тонны доступных вариантов. Вот два.

Вариант А

Компьютер, отправляющий электронную почту, может проверить известный URL-адрес, чтобы получить текущий список получателей электронной почты, например, http://mycompany.com/emailRecipients. Содержимое этого известного URL может быть обновлено вторым компьютером с использованием любого из нескольких подходов, включая FTP.

Вариант Б

Лично я бы создал веб-сервис, который мог бы принимать обновленный список получателей электронной почты и писать новый список, где бы он ни находился на этом компьютере.

Сложнее было бы найти компьютер, на котором запущен веб-сервис (и отправлять электронные письма), так как IP-адрес будет часто меняться (если он у оператора беспроводной связи).

Вы можете использовать решение, такое как LogMeIn Hamachi, для создания VPN с устойчивым IP-адресом при таких обстоятельствах.

Я рекомендую вам использовать облачную очередь сообщений, такую ​​как Azure Message Queue или Amazon Simple Message Queue (вот недавнее сравнение). Облачные очереди позволяют настраивать в приложениях постоянные адреса серверов.

Если IP-адреса вашего компьютера известны заранее или вы можете использовать общий компьютер в качестве обмена адресами, то ZeroMQ также является отличным выбором, позволяя вам использовать шаблон обмена сообщениями "запрос-ответ" или "публикация-подписка".

Выберите "первый компьютер" в качестве сервера. Откройте необычный порт, такой как 20546, как на маршрутизаторе, так и в приложении с помощью Net.Sockets.TCPServer. Второй компьютер может просто отправлять строковые команды, такие как "addtolist abc@somemail.com". Сервер может понимать ваши команды, если вы используете, скажем, command.split (""), и теперь первый элемент в массиве строк - это команда, второй - параметр. Все может быть сделано таким образом.

Другие вопросы по тегам