我的套接字已经像这样声明了套接字:
serverAddr = InetAddress.getByName(this.ip);
socket = new Socket(serverAddr, port);
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
但是,以下不起作用。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: " + e);
disconnect();
}
}
我怎么能解决这个问题?
编辑:
这就是在我的服务器类中发送的样子:out.println(message); out.flush(); 每当我在消息中放入某些内容时,这都会在循环中发生。out 在此循环之后关闭。