簡體   English   中英

套接字未收到任何數據

[英]Socket does not receive any data

我在Android Studio中有一個C#服務器和此Java客戶端:

@Override
    public void run() {

        try {
            Socket socket = new Socket("192.168.0.107", 7778);
            BufferedReader inFromServer = new BufferedReader(new InputStreamReader(socket.getInputStream()));

            while (true) {
                currentMessage = inFromServer.readLine();
                System.out.println(currentMessage);

                Thread.sleep(200);
            }
        }
        catch(Exception e) {
            System.out.print("Error: " + e.toString() + "\n");
        }
    }

我已經使用Telnet對服務器進行了測試,並且消息可以正常發送,幾乎可以肯定的是,客戶端代碼中存在此問題。 我也嘗試過使用DataInputStream而不是BufferedReader,但是它給了我相同的結果。 我也沒有任何過人之處。

我的AndroidManifest.xml中具有以下權限:

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

readLine()阻塞,直到在底層緩沖區中接收到整行(以\\r\\n\\n終止readLine()為止(或者已經達到蒸汽的末尾)。 因此,除非您的服務器使用換行符終止數據,否則您的程序將不會打印任何內容。 當套接字超時時,異常除外。

暫無
暫無

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

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