簡體   English   中英

如何從客戶端服務器套接字連接讀取響應?

[英]How to read response from Client-Server Socket Connection?

我正在從我的Android APP執行Shell命令。 我能夠執行命令,但無法讀取服務器的響應。 我的代碼如下:

public String executeThroughSocket(int portNo, String portAddress, String command) throws IOException {

    StringBuilder responseString = new StringBuilder();

    PrintWriter writer = null;
    BufferedReader bufferedReader = null;
    Socket clientSocket = null;

    try {
        clientSocket = new Socket(portAddress, portNo);
        if (!clientSocket.isConnected())
            throw new SocketException("Could not connect to Socket");

        clientSocket.setKeepAlive(true);

        writer = new PrintWriter(clientSocket.getOutputStream(), true);
        writer.println(command);
        writer.flush();

        bufferedReader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
        String str;
        while ((str = bufferedReader.readLine()) != null) {
            responseString.append(str);
        }

    } finally {
        if (writer != null)
            writer.close();
        if (bufferedReader != null)
            bufferedReader.close();
        if (clientSocket != null)
            clientSocket.close();
    }
    return responseString.toString();
}

我的代碼沒有錯。 是服務器未發送任何響應。

您必須設置套接字超時

clientSocket .setSoTimeout(5000); // milisekundy

暫無
暫無

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

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