Я работаю над приложением, которое отправляет сообщения на другие телефоны. Вроде как чат-посланник. Как мое приложение должно работать, пользователь вводит IP-адрес и сообщение, и приложение отправляет сообщение на указанный IP-адрес. В настоящее время у меня есть сервер и клиент, работающие в одном приложении. Таким образом, любой телефон может подключаться к любому другому телефону, поскольку каждый из них имеет свой независимый сервер, к которому осуществляется доступ через IP-адрес устройства. Однако я не могу подключиться к IP-адресу, который не находится в моей локальной сети. Я хочу знать, как я могу заставить сервер получать сообщения от устройств, не подключенных к моей локальной сети?Как сделать IP-адрес моего устройства доступным из любого места?
Я прочитал о переадресации портов, и это похоже на хорошее решение, но риски безопасности не обнадеживают. Я также думал об использовании общедоступного IP-адреса, такого как веб-сервер Amazon, для запуска моего сервера, и IP-адрес был бы доступен из любой точки мира. Единственная проблема с этим - как сервер узнает, какое устройство отправляет сообщение?
Если ip-адреса от клиентов являются динамическими, достичь этого будет трудно. Если ваш сервер имеет статический IP-адрес, вы можете его обернуть и клиенты часто свяжутся с сервером, чтобы узнать, есть ли сообщения, ожидающие их. – avk
Если вы хотите, чтобы кто-то нашел вас в вашей локальной сети, вам придется выставлять какую-то контактную информацию и настраивать маршрутизацию, NAT и любые другие меры безопасности/сети, которые у вас есть, чтобы пропустить их, никоим образом не обойти. –
Итак, порт перенаправляет мой единственный вариант или это даже не будет возможно на Android? – Restnom