小编Sad*_*ace的帖子

BufferedReader从未准备好(用Java编写Socket编程)

我有套接字已经声明套接字像这样:

serverAddr = InetAddress.getByName(this.ip);
socket = new Socket(serverAddr, port);
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
Run Code Online (Sandbox Code Playgroud)

但是,以下不起作用.in.ready()总是返回false,如果删除,程序将冻结String message = in.readLine();

private void receive() {
        try {
            InputStreamReader isr = new InputStreamReader(socket.getInputStream());
            System.out.println(isr.getEncoding());
            BufferedReader in = new BufferedReader(isr);
            if (in.ready()) {
                String message = in.readLine();
                if (message != null) {
                    if (listener != null) {
                        listener.receiveMessage(ip, message);
                    } else {
                        print("Client recieved: " + message);//
                    }
                }
            }
            in.close();
        } catch (Exception e) {
            print("Error with input stream: …
Run Code Online (Sandbox Code Playgroud)

java sockets bufferedreader ready

6
推荐指数
1
解决办法
8820
查看次数

标签 统计

bufferedreader ×1

java ×1

ready ×1

sockets ×1