Связь между двумя разными компьютерами с двумя разными приложениями
У меня есть два компьютера с ОС 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 (""), и теперь первый элемент в массиве строк - это команда, второй - параметр. Все может быть сделано таким образом.