java - 如何从客户端-服务器套接字连接读取响应?

标签 java android sockets

我正在从我的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();
}

最佳答案

我的代码没有错。是服务器未发送任何响应。

关于java - 如何从客户端-服务器套接字连接读取响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34739503/

相关文章:

java - 在 tabWidget 中跳过一行

c# - 在测试中使用模拟

java - 如何使用 jorda 时间将时区转换为 UTC 时区

androidcamera2预览表面在使用后台服务的情况下

c - 多播监听器接受另一个端口上的套接字

java - 对卡在 CLOSE_WAIT 状态的连接进行故障排除

java - 如何在 Play 框架 2 中格式化输入值?

android - Flutter Custompainter canvas drawimage 不工作

c - Raw Socket Linux 发送/接收数据包

java - 解析问题H.264序列参数集数据