JAVA中Sockets长连接时使用read()阻塞的问题!急救!
发布网友
发布时间:2024-09-25 17:59
我来回答
共2个回答
热心网友
时间:2024-11-24 14:06
while (true) {
try {
byte buff[] = new byte[500];// 缓冲数组
if (buff != null && buff.length > 0) {
DataIn.read(buff);
String str = new String(buff);// 接受客户端发送的数据包
String dataBag="客户端\t" + sdf.format(dt) + "\n";
}
if(stopFlag)
break;
} catch (IOException ioe) {
System.out.println("读写异常:"+ioe.getMessage());
}
}
我的代码,运行正常,看到了吗?只要把buff[]转成字符串就完事了追问非常感谢帮忙。
就是在.read(buff);的时候还是阻塞了。。。直接无响应。。。然后也没有异常报错提示。。
这是怎么回事呢?服务端那边是正常的,检测有数据返回,但就是接收不到。。
热心网友
时间:2024-11-24 14:06
楼主代码有一定问题
byte[] buf = new byte[512];
int n=0;
while( (n=inputStream.read(buf)) != -1 ) {
//处理buf里的数据
}追问还是那个问题,inputStream.read(buf),
执行到read()就会卡死。。。到底是怎么一回事。。。
追答把2端的源代码贴出来看看