簡體   English   中英

如何使用套接字將Android移動設備上的移動應用程序連接到筆記本電腦服務器?

[英]How to connect a mobile application from your android mobile device to your laptop server using sockets?

我有一個非常簡單的Java服務器在我的筆記本電腦上運行。 另一方面,我有我的平板電腦,也有一個非常簡單的客戶端,以配合我的服務器,但它無法正常工作。 兩者都在同一個無線網絡上運行。

Server ServerSocket serverSocket = null的示例; 套接字socket = 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權限。 試圖關閉計算機防火牆。 關於無線連接如何工作可能會阻塞連接,我應該知道些什么嗎?

提前致謝

您需要為INTERNET設置權限。

<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();
            }
        }

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM