簡體   English   中英

Android模擬器(客戶端)到手機(服務器)套接字連接

[英]Android emulator(client) to phone(server) socket connection

我目前正在嘗試通過TCP / IP套接字連接連接模擬器(客戶端)和電話(服務器)。 但不知怎的,它永遠不會起作用,但如果我嘗試將模擬器(作為客戶端/服務器)與內部java程序(作為客戶端/服務器)連接,它也可以正常工作,套接字連接也可以正常工作,從手機到不在模擬器上的應用程序。 我認為這與端口轉發有關,所以我嘗試過:

源自如何將本地主機IP地址轉發到Android模擬器

telnet localhost 5554

redir add tcp:1337:12345

但是當我用端口號1337和服務器端12345測試我的客戶端時,它仍然不起作用,服務器代碼沒有.accept()客戶端的請求。

以下是我的客戶端(模擬器)和服務器(電話)代碼,用於接受和設置io流

客戶:

SERVER_IP是本地IP地址

connection = new Socket(SERVER_IP, PORT);

private void setUpStreams() throws IOException {
            output = new ObjectOutputStream(connection.getOutputStream());
            output.flush();
            input = new ObjectInputStream(connection.getInputStream());
        }

服務器:

這是為了接受用戶私有的void acceptingUser(){

        try {
            ss = new ServerSocket(PORT, 10);
            connection = ss.accept();
            connected = true;
            osm.updateInChatStatus(1);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            Log.i("serv", "Wasn't able to connect with any clients!: " + e);
        }
    }

和設置流非常類似於客戶端。 提前感謝您的建議和解決方案。

要訪問網絡連接,您需要在AndroidManifest.xml中設置權限

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.bosch.adx.esidroid">
    <uses-permission android:name="android.permission.INTERNET" />
<application
--

暫無
暫無

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

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