2015-07-13 2 views
0

В моем приложении есть ПК (победа 7 как веб-сервер) и 1-дюймовые устройства Android (как клиент).
Сеть через модем/маршрутизатор. устройствам Android необходимо подключиться к ПК и отправлять/получать данные.
проблема, что у меня есть, что IP, что модем/маршрутизатор присваивает ПК отличается каждый раз сеть сбрасывает
поэтому я хочу подключить к ПК с помощью PC-Name, как:Подключиться к компьютеру с именем компьютера

public static String ServerAddress = "Reza-PC"; 

или найти путь к конвертировать имя компьютера в компьютер IP.
как я могу это сделать (если это возможно)?

ответ

0

Рассмотрите возможность подключения вашего ПК к ПК из-за пределов вашего маршрутизатора с помощью WAN ip. Также вам нужно выполнить port forwarding.

+0

спасибо. но должен быть local.i знаю, что такое переадресация портов, но как он может использовать его для решения моей проблемы? – ReZa

+0

Вы можете вручную установить IP-адрес на свой компьютер (для предотвращения его случайного IP-адреса), затем попробуйте подключиться. – Taha

+0

В качестве альтернативы вы можете установить имя домена на свой локальный компьютер. Я нашел [это] (http://lifehacker.com/124804/geek-to-live--how-to-assign-a-domain-name-to-your-home-web-server). Надеюсь это поможет. – Taha

0

Вы можете использовать библиотеку JCIFS для реализации протокола CIFS/SMB Networking ... просто, он позволяет отправлять и получать файлы через сеть и/или ПК с ОС Windows с общими папками.

Пример:

private boolean startSmbTransfer(String filename) { 

    boolean IS_SUCCESS = true; 
    File sourse = new File(Environment.getExternalStorageDirectory() 
      + "/FolderName/" + filename); 

    final String NETWORK_FOLDER = "smb://PC-NAME/FOLDER-NAEME/"; 

    SmbFileOutputStream sfos = null; 
    InputStream is = null; 
    try { 

     NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(
       null); 
     String path = NETWORK_FOLDER + sourse.getName(); 
     System.out.println("Path: " + path); 

     SmbFile sFile = new SmbFile(path, auth); 
     sfos = new SmbFileOutputStream(sFile); 

     byte[] buf = new byte[512]; 
     is = new FileInputStream(sourse); 
     int c = 0; 
     while ((c = is.read(buf, 0, buf.length)) > 0) { 
      sfos.write(buf, 0, c); 
      sfos.flush(); 
     } 

    } catch (Exception e) { 
     e.printStackTrace(); 
     IS_SUCCESS = false; 
    } finally { 
     try { 
      sfos.close(); 
      is.close(); 
     } catch (Exception e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
      IS_SUCCESS = false; 
     } 
    } 
    return IS_SUCCESS; 
} 

проверка ниже ссылку для подробной информации и примера использования этой библиотеки, using JCIFS library in android

+0

Мне не нужен общий доступ к файлам. Я хочу подключиться к веб-серверу. – ReZa

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