Как подключить мобильное приложение с мобильного устройства Android к серверу ноутбука с помощью сокетов? - PullRequest
3 голосов
/ 19 декабря 2011

У меня очень простой Java-сервер, который работает на моем ноутбуке.С другой стороны, у меня есть планшет с очень простым клиентом для подключения к моему серверу, но он не работает.Оба работают в одной беспроводной сети.

Образец сервера ServerSocket serverSocket = null;Сокет сокет = ноль;DataInputStream dataInputStream = null;DataOutputStream dataOutputStream = null;

    try {
        serverSocket = new ServerSocket(8888);
        System.out.println("Listening :8888");
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    while(true){
        try {
            socket = serverSocket.accept();
            dataInputStream = new DataInputStream(socket.getInputStream());
            dataOutputStream = new DataOutputStream(socket.getOutputStream());
            System.out.println("ip: " + socket.getInetAddress());
            System.out.println("message: " + dataInputStream.readUTF());
            dataOutputStream.writeUTF("Hello!");

Простой код клиента:

mysock = new Socket(server_adress, port_number);

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

Заранее спасибо

1 Ответ

1 голос
/ 19 декабря 2011

Вам необходимо установить разрешение для ИНТЕРНЕТ.

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

Клиентская сторона:

String adresaServer = "192.168.4.120";

        int PORT = 8095;
        Socket socket = null;

        DataInputStream in = null;

        try {
            socket = new Socket();
            SocketAddress adr = new InetSocketAddress(adresaServer, PORT);
            socket.connect(adr, 1500);

            out = new DataOutputStream(socket.getOutputStream());
            in = new DataInputStream(socket.getInputStream());
            out.flush();
        } catch (SocketTimeoutException e) {
            System.err.println(" Error at CONNECTINGG: \n" + e);

        } catch (UnknownHostException e) {
            System.err.println(" Serverul nu poate fi gasit \n" + e);
            System.exit(1);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();

        }
        out.writeFloat(sensors.getValueGyroZ());
            } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (Exception e) {

                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

Сторона сервера:

ServerSocket serverSocket = null;

        try {
            serverSocket = new ServerSocket(PORT);
            serverSocket.setSoTimeout(1600000);

            System.out.println(" Waiting a client ... ");
            Socket socket = serverSocket.accept();
            int i = 0;
            DataOutputStream out = new DataOutputStream(
                    socket.getOutputStream());



            while (true) {


                DataInputStream in = new DataInputStream(
                        socket.getInputStream());



            System.out.println(String.valueOf(in.readFloat()));

            }

        } catch (IOException e) {
            System.err.println(" Eroare IO \n" + e);


        } finally {
            try {
                serverSocket.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

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