Попытка настроить сервер / клиент между двумя телефонами Android, когда один работает как точка доступа Wi-Fi, а другой подключен к нему - PullRequest
0 голосов
/ 12 февраля 2012

У меня есть два телефона: A и B. A действует как точка доступа Wi-Fi; B подключен к Wi-Fi сети. Теперь я бы хотел, чтобы А действовал как сервер, а Б - как клиент. Вот суть моего кода:

A выполняет следующие действия (конечно, в своем собственном потоке и в операторах try / catch)

ServerSocket server = new ServerSocket(SERVERPORT);
Socket client = server.accept();

, а затем B делает

Socket socket = new Socket(SERVERIP, SERVERPORT);

SERVERIP всегда один и тот же, когда A активирует свою Wi-Fi AP, поэтому я просто жестко запрограммировал его. (Я проверил это несколькими разными способами.)

Когда B пытается подключиться, я получаю следующее исключение:

java.net.ConnectException: /192.168.43.1:29288 - Network is unreachable
    at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:207)
    at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
    at java.net.Socket.startupSocket(Socket.java:705)
    at java.net.Socket.<init>(Socket.java:263)
    at disaster.relief.DisasterReliefActivity$ClientThread.run(DisasterReliefActivity.java:288)
    at java.lang.Thread.run(Thread.java:1019)

Я пытался использовать один и тот же код, когда два телефона находятся во внешней сети Wi-Fi, и она работает просто отлично. Есть идеи, почему это не сработает?

UPDATE

Я также пытался подключиться к серверу с моего компьютера (когда он подключен к сети Wifi) через telnet, и это прекрасно работает, поэтому проблема должна быть в том, что B создает экземпляр сокета. Я что-то упустил?

1 Ответ

0 голосов
/ 12 февраля 2012

Можете ли вы выйти в Интернет, используя этот модем, через телефон, подключенный к другому? Вы должны активировать свой сервер только после того, как модем подключен к сетевому интерфейсу. с 192.168.43.1 будет отключен до этого момента. Вы можете попробовать и использовать ту же технику, используя ноутбук или компьютер, подключенный к Wi-Fi к вашему телефону с включенной привязкой. Вы можете использовать telnet, чтобы проверить, доступен ли порт и принимает ли он. Возможно, вы захотите прочитать этот открытый сокет Android и отправить команды . Я бы также использовал порты между 1024-10000. Но это зависит от вас, я думаю.


надеюсь, что это поможет вам.

...