簡體   English   中英

Android設備到PC的套接字連接

[英]Android device to PC's socket connection

我面臨着從Android設備到PC的特定端口(如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。

如果您使用的是wifi,則需要在wifi網絡上使用PC的IP地址。 您可以在命令行中使用ifconfig(linux)或ipconfig(windows)找到它

如果您使用的是usb adb連接,則無法完全執行此操作,但您可以設置從PC到手機的adb端口(請參閱開發人員文檔),並讓PC連接到它的環回接口和端口,它將被轉發到應用程序應該監聽的電話上的非特權端口號。 然后,您可以使用TCP或任何可以向任一方向推送數據的連接。 但PC必須是設置連接的發起者 - adb不支持“反向網絡共享”,其中手機以Android模擬器支持的方式啟動與PC的網絡連接。

您的服務器需要在設備上,客戶端需要在計算機上。 您需要讓adb轉發您要連接到設備的端口。 建立連接后,您將能夠正常地進行通信。

我在這里寫了一個完整的解釋http://qtcstation.com/2011/03/connecting-android-to-the-pc-over-usb/

首先,如果您嘗試從設備連接到127.0.0.1,那么您不能這樣做是合乎邏輯的。 因為127.0.0.1是環回接口並始終指向設備本身。

因此,如果從PC連接到127.0.0.1,它將自行連接。 如果你在android上調用它,它也試圖與自己連接。

第二:我認為你能做到這一點的唯一方法是當你使用WLAN時,只有你有基於IP的PC連接(如果我錯了,請糾正我)。 您無法使用USB或藍牙連接到PC。

暫無
暫無

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

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