Socket编程:关于BufferedInputStream的read方法问题

我的代码如下:写的是在客户端接受服务器发送过来的数据,但是while((word=in.read(data1,0,1024))!=-1){(这一行总是报错);请问该如何修... 我的代码如下:写的是 在 客户端 接受服务器发送过来的数据,但是 while((word=in.read(data1,0,1024))!=-1){(这一行总是报错);请问该如何修改才能接受 服务器端发来的文件。while的代码形式不变。希望能有高人给出好的解决方案。
in=new BufferedInputStream(s.getInputStream());
out=new PrintWriter(s.getOutputStream(),true);
int word=-1;
byte data[]=new byte[0];
byte data1[]=new byte[1024];
while((word=in.read(data1,0,1024))!=-1){
byte temp[]=data;
data=new byte[data.length+word];
System.arraycopy(temp,0,data,0,temp.length);
System.arraycopy(data1,0,data,temp.length, word);
}
System.out.println(data);
错误信息:

Exception in thread "main" java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
at Client.run(Client.java:48)
at Client.main(Client.java:20)
服务器端的代码:

public void run() throws IOException{
Socket client=server.accept();
in=new BufferedReader(new InputStreamReader(client.getInputStream()));
out=new PrintWriter(client.getOutputStream());
String file="";
file=in.readLine();
file=basePath+file;
System.out.println(file);
File f=new File(file);
BufferedReader input = new BufferedReader( new FileReader(f.getPath()));
String FileLine = input.readLine();
while (FileLine != null) {
out.println(FileLine);
out.flush();
System.out.println(FileLine);
FileLine = input.readLine();
}
input.close();
}
展开
 我来答
creymice
推荐于2016-07-28 · TA获得超过140个赞
知道答主
回答量:72
采纳率:0%
帮助的人:57.7万
展开全部
服务端代码
input.close();下面加上一段代码:
out.close();

服务端发送完之后,程序退出
客户端没有收到流发送完毕的通知,一直在等待,等待的时候服务端异常退出,导致报错
加上的那段代码向客户端发送结束标志
追问
那么  while((word=in.read(data1,0,1024))!=-1)执行总是出错是怎么回事呢?
大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式