Я написал несколько клиент-серверных приложений, которые работали между двумя компьютерами в одной сети, но я не уверен, что связь в этом случае будет работать из-за разных сетей, в которых есть телефон и ПК.
Одна потенциальная проблема, которую я вижу, состоит в том, что, в зависимости от вашего провайдера 3G, могут быть ограничения на номера портов и протоколы, которые можно использовать. Например, HTTP к любому номеру порта может быть разрешен, но неизвестные пакетные данные (т.е. неопознаваемый протокол) к тем же номерам портов, которые работают для HTTP, могут быть отброшены.
Я пытался установить, можно ли это сделать, выполнив команду ping на некоторых компьютерах в моем университете и дома, используя программу pinging, которую я получил с рынка, но пока не добился успеха. Тем не менее, мой друг рутировал свой телефон и смог это сделать.
Опять же, еще одна потенциальная проблема - ping (ICMP) не является хорошим тестом для доступа к устройствам в других сетях, так как большинство маршрутизаторов / межсетевых экранов по периметру по умолчанию отказываются от ICMP-трафика (обычно тихо) - даже мой домашний DSL-маршрутизатор / межсетевой экран молча блокирует ICMP по умолчанию. Что касается необходимости использования рутированного телефона для использования приложения ping - мой телефон не рутирован, и у меня есть приложение ping с маркета, которое работает нормально.
Полагаю, этот вопрос состоит из двух частей: 1) Возможно ли это? и 2) Нужно ли рутировать мой телефон, чтобы это сделать, или я должен быть в состоянии сделать это без рута?
Нет никаких причин, по которым я знаю, что это потребовало бы, чтобы телефон был рутирован для использования основанных на сокетах соединений, мне просто интересно, не является ли попытка пропинговать маршрутизатор / брандмауэр не лучшим тестом для того, что вы пытаетесь достичь.
Я бы порекомендовал начать с HTTP - я не знаю, что вы используете для программирования на ПК, но простой HTTP-слушатель должен быть достаточно простым для объединения. Начните с прослушивания порта 80 и попробуйте из браузера Android - если это работает, измените порт прослушивания на что-то вроде 6789 (не забудьте открыть порты на домашнем маршрутизаторе / брандмауэре). Предполагая, что у вас это работает, попробуйте использовать материал на основе сокетов, который вы разработали, используя Wi-Fi в вашей локальной сети, если это работает, то попробуйте через 3G.