簡體   English   中英

在Android appEDIT中建立Java服務器和客戶端之間的連接

[英]Establishing a connection between Java server and client within Android appEDIT

我有一個Android的應用程序,我在其中創建了一個Android客戶端和一個Java服務器。

但是我遇到了以下問題:我的客戶端(android部分)使用android環回地址連接到端口6000上的本地機器。

我的服務器(用Java)在端口6000上偵聽本地機器 - 但是我必須使用什么IP來獲得接受客戶端的套接字?

InetSocketAddress serverAddr = new InetSocketAddress(SERVERIP,serverPort);
serverSocket = new ServerSocket();
serverSocket.bind(serverAddr);

那么我必須使用什么SERVERIP?

更新:我的客戶端在模擬器上運行!!!!!

編輯:

公共類ClientThread實現Runnable {Object syncToken;

    public ClientThread(Object syncToken) {
        this.syncToken = syncToken;
    }

    public void run() {
        try {
            InetAddress serverAddr = InetAddress.getByName(serverIpAddress);

            socket = new Socket(serverAddr, 50458);


        } catch (UnknownHostException e) {
            System.err.println("Don't know about host");
        } catch (IOException e) {
            System.err
                    .println("Couldn't get I/O for the connection to host");
        }

        try {
            out = new PrintStream(socket.getOutputStream());
        } catch (IOException e) {

            System.out.println(e);
        }

        while (true) {
            synchronized (syncToken) {
                try {
                    syncToken.wait();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }

        }

    }
}

這里是:private String serverIpAddress =“10.0.2.2”; !!!!!

來自http://developer.android.com/guide/developing/devices/emulator.html#emulatornetworking :如果要從模擬器內部與本地主機進行通信,請在本地主機上使用IP 127.0.0.1並使用IP 10.0.2.2在Android中10.0.2.2 這應該允許您在Android客戶端和本地主機服務器之間進行通信。

您想在Android上運行服務器部分嗎? 我猜不是,在這種情況下使用環回地址並不真正起作用,因為Android系統上的環回接口循環回到Android機器本身,它不會路由到外部。

對於serverAddr,使用#InetSocketAddress(int port)構造函數,它指定通配符地址和特定端口,這意味着它偵聽機器的所有接口。

編輯:為了獲得最佳效果,在Android設備上使用服務器的DNS名稱連接到它。

暫無
暫無

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

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