/* while(true) {
try {
if(in.ready()) {
str =in.readLine();
System.out.println(str);
}
} catch (IOException e1) {
// TODO 自动生成 catch 块
System.out.println("读取信息失败!");
e1.printStackTrace();
System.exit(1);
}
}*/
这是socket客户端一端程序,in是BufferedReader类型的,想问怎么在客户端判断服务器端发送消息过来了。而不用上面那种方法,上面的方法CPU的利用率一直是100%。
try {
if(in.ready()) {
str =in.readLine();
System.out.println(str);
}
} catch (IOException e1) {
// TODO 自动生成 catch 块
System.out.println("读取信息失败!");
e1.printStackTrace();
System.exit(1);
}
}*/
这是socket客户端一端程序,in是BufferedReader类型的,想问怎么在客户端判断服务器端发送消息过来了。而不用上面那种方法,上面的方法CPU的利用率一直是100%。
解决方案 »
- I|O问题
- 请教各位高手,帮帮小弟忙解决一个关于Java和蓝牙的问题
- 高手赐教:java中为什么不支持多重继承?
- c++到java
- 编写的小应用程序用appletviewer来检查,一切正常。但在IE上查看时一直显示Loding images...,请问这是为什么?
- java.lang.NoSuchMethodError: main,Exception in thread "main"是什么错误?
- 请问import得问题?
- final类型变量问题
- 关于Socket的菜鸟问题
- 数据库更新问题(st.executeUpdate(sql))请高手指点
- 由access导出txt的数据文件,怎么用程序识别文件,并把txt里面的字段识别出来呢!(txt里面有格式)
- 多线程Socket聊天中来自一client的信息怎么发送给别的client?
即是 ××× extends Thread
* 创建日期 2005-7-28
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
package com.motel168.dingnc;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;/**
* @author qiya
*
* TODO 要更改此生成的类型注释的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
public class SqlThread extends Thread { BufferedReader in = null; Socket st = null; String str = null; public SqlThread(Socket st) {
this.st = st;
try {
in = new BufferedReader(new InputStreamReader(st.getInputStream()));
} catch (IOException e) {
// TODO 自动生成 catch 块
System.out.println("创建输入流失败!");
e.printStackTrace();
System.exit(1);
}
} public void run() {
while(true) {
try {
if(in.ready()) {
str =in.readLine();
System.out.println(str);
}
} catch (IOException e1) {
// TODO 自动生成 catch 块
System.out.println("读取信息失败!");
e1.printStackTrace();
System.exit(1);
}
}
} }
}
全部的代码如上。我也知道是死循环,但是我没有更好的方法来判断服务器发送过来消息了,想知道怎么判断。