Socket得到的InputStream,read方法的问题,我做的是客户端程序,主要功能是读取服务器端的内容,保存到客户端,简单代码如下:
try {
InputStream in = socket.getInputstream();
while (true) {
if (in.read() != -1 ){ // 1
//写服务器端过来的内容
}
}
}catch (IOException ex) {
//异常处理 // 2
}
我的预想是:
//1 的地方我用来阻塞程序,等待socket的输入流 ,socket已经设置了超时。如果等待超时就跳到 //2 做异常处理。
实际运行是服务器端socket通信切断(也有可能是程序异常服务器端主动切断通信)时候,我这边并没有等待超时, //1 的地方也没有阻塞住 ,程序进入死循环(while) ,且 in.read() == -1。
这是什么原因,请高手指点下!!!!在线急等.
try {
InputStream in = socket.getInputstream();
while (true) {
if (in.read() != -1 ){ // 1
//写服务器端过来的内容
}
}
}catch (IOException ex) {
//异常处理 // 2
}
我的预想是:
//1 的地方我用来阻塞程序,等待socket的输入流 ,socket已经设置了超时。如果等待超时就跳到 //2 做异常处理。
实际运行是服务器端socket通信切断(也有可能是程序异常服务器端主动切断通信)时候,我这边并没有等待超时, //1 的地方也没有阻塞住 ,程序进入死循环(while) ,且 in.read() == -1。
这是什么原因,请高手指点下!!!!在线急等.
解决方案 »
- 学习Java三个月了,暑假想在找些实习公司实习,可以找哪些?
- 监测路由器和UPS
- 关于JAVA中的保留字
- 北京 急招java开发人员
- 500大分,关于用antlr静态分析Java源代码!
- 可以运行成功只是不是我想要的效果:窗体显示不出来。
- 我新建了一个workspaceJOB4,而后在里面添加了一个JB4.java,一个JB41.htm,一个JB42.txt文件
- java如何实现串口通信,急!急!急!
- 请问哪里有jbuilder4.0的使用手册,最好是中文的,谢谢
- 各位大神帮我看下哪里错了
- 用struts1和spring 怎么管理数据库啊
- 请问java ee对javascript的要求有多高?
while(flag){
--------------
}catch(IOException ex)
{
flag=false;
in.close();
}
int ch;
while((ch = is.read()) != -1) {
// 处理
}
//服务器正常结束catch IOException表示有异常(例如你拨网线了)