2016-10-16 10 views
1

Я пытаюсь передать сообщение между двумя телефонами Android по локальной сети. Я читаю сокеты, где хороший способ сделать это. (я не могу использовать bluetooth) (я не могу использовать NFC либо)Клиентский сокет не подключается к серверному сокету

Я создал сервер и клиентское приложение.

У одного приложения есть сервер, который прослушивает соединение.
В другом приложении есть клиент, который пытается подключиться при нажатии кнопки.

Оба файла манифеста содержат правильные разрешения. (С HTML-теги)
использует разрешение-андроид: имя = "android.permission.INTERNET"/
использует-разрешение> Android: имя = "android.permission.ACCESS_NETWORK_STATE"/

я поставил сервер в Интернете первый:

 ServerSocket myServerSocket = new ServerSocket(27024); 
     System.out.println("Server is waiting for incoming connection on host=" + InetAddress.getLocalHost().getCanonicalHostName() + ", port=" + myServerSocket.getLocalPort()); 
     Socket socket = myServerSocket.accept(); 

Затем попытаться соединиться с клиентом.

  String host = "localhost"; 
      int port = 27024; 

      try{ 
       System.out.println("Client attempting to connect to server at host: " + host + ", port: " + port); 
       Socket socket = new Socket(host, port); 

       //This below line never gets called :(
       System.out.println("Client socked created! Now trying to send data to server"); 

       } 

В моей консоли:
клиент пытается подключиться к серверу на хосте: локальный порт: «двинул создал клиент!» 27024

линия никогда не выводится.

Оба хоста установлены в «localhost», а номер порта - один и тот же.
Я пробовал разные порты, но ничего не происходит.

ответ

1
String host = "localhost"; 
int port = 27024; 

Вы понимаете, что ваш клиент должен быть предоставлен IP-адрес сервера, не так ли?

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

+0

, но оба клиента и сервер находятся в локальной сети, localhost? – snowy500

+0

'localhost' относится к устройству, в котором работает приложение, и адрес всегда будет« 127.0.0.1', локальный цикл назад. Используя этот адрес, пакеты никогда не покидают устройство. Вы должны использовать IP-адреса каждого устройства. –

+0

Боже, что заставляет меня чувствовать себя глупо, теперь я понимаю, почему пример парней работал, я смотрел на youtube - потому что он запускал клиент и сервер с одной машины. – snowy500

Смежные вопросы