Подключение устройства Android к разъему ПК - PullRequest
4 голосов
/ 07 октября 2010

У меня возникла проблема с установкой сокетного соединения от устройства Android на ПК с определенным портом, например 8080.Я просто хочу создать сокет, который будет подключаться к определенному порту, а также записывать некоторый поток данных на этот порт.

Я написал некоторый код для этой цели, но код дает мне исключение как:

TCP Error:java.net.ConnectException:/127.0.0.1:8080-connection refused

Я даю свой код, как показано ниже:

private static TextView txtSendStatus;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        initControls();


        String sentence = "TCP Test #1n";
        String modifiedSentence;

        try {

            Socket clientSocket = new Socket("192.168.18.116", 8080);
            DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
            BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
            printScr("TCP Connected.");

            outToServer.writeBytes(sentence + 'n');
            modifiedSentence = inFromServer.readLine();
            printScr(modifiedSentence);
            printScr("TCP Success !!!");

            clientSocket.close();

        } catch (Exception e) {
           printScr("TCP Error: " + e.toString());
        }
    } 
    private void initControls()
    {
          txtSendStatus = (TextView)findViewById(R.id.txtSendStatus);
    }

    public static void printScr(String message)
    {
           txtSendStatus.append( "n" + message );
    }

Есть кто-нибудь, кто может сказать мне ответ?Я жду правильного ответа.

С наилучшими пожеланиями, gsmaker.

Ответы [ 3 ]

6 голосов
/ 08 октября 2010

Если вы используете Wi-Fi, вам нужно использовать IP-адрес вашего ПК в сети Wi-Fi.Вы можете найти это в командной строке с помощью ifconfig (linux) или ipconfig (windows)

Если вы используете соединение usb adb, вы не можете сделать это точно, но вы можете настроить переадресацию порта adb(см. документацию для разработчиков) с ПК на телефон, и подключите компьютер к интерфейсу обратной связи и к порту, который будет перенаправлен на непривилегированный номер порта на телефоне, где должно прослушиваться ваше приложение.Затем у вас есть TCP или другое соединение, по которому вы можете передавать данные в любом направлении.Но компьютер должен быть инициатором установки соединения - adb не поддерживает «обратную привязку», при которой телефон инициирует соединения по ПК через сеть, как это поддерживается эмулятором Android.

5 голосов
/ 13 марта 2011

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

Я написал полное объяснение здесь http://qtcstation.com/2011/03/connecting-android-to-the-pc-over-usb/

0 голосов
/ 08 октября 2010

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

Так что, если вы подключитесь к 127.0.0.1 с вашего ПК, он соединится сам с собой.Если вы вызываете его на Android, он пытается соединиться с самим собой.

И второе: я думаю, что единственный способ, которым вы могли бы сделать это, - это когда вы используете WLAN, только тогда у вас есть подключение к ПК по IP (поправьте меня, если я ошибаюсь).Вы не можете подключиться к компьютеру через USB или Bluetooth.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...