Android socket连接冻结

时间:2013-12-08 00:43:03

标签: android eclipse sockets networking

我正在尝试实现一个从服务器发送和接收字符串的简单套接字。

以下代码冻结了应用程序,不确定我是否做了明显错误的事情?

public String internetRoutesRetrieve(String userName) {
    String command = null;
    String response = null;
    Socket socket = null;
    DataOutputStream dataOutputStream = null;
    DataInputStream dataInputStream = null;

    try {
        socket = new Socket("Hidden IP", HiddenPort);
        dataOutputStream = new DataOutputStream(socket.getOutputStream());
        dataInputStream = new DataInputStream(socket.getInputStream());
        command = "SEARCH <" + userName + ">";
        dataOutputStream.writeUTF(command);
        response = dataInputStream.readUTF();
    } catch (UnknownHostException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    finally {
        if (socket != null) {
            try {
                socket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        if (dataOutputStream != null) {
            try {
                dataOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        if (dataInputStream != null) {
            try {
                dataInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    return response;
}

由于

编辑:当我尝试从服务器保存响应时,程序似乎冻结了

1 个答案:

答案 0 :(得分:0)

请参阅AsyncTask,了解Android应用程序上正确的客户端服务器通信。

如果你不这样做,你通常会android.os.NetworkOnMainThreadException,但我会尝试一下。

相关问题