该楼层疑似违规已被系统折叠隐藏此楼查看此楼
我有一个java的ftp程序,他既是客户端又是服务端,我把程序放在两台电脑上运行,
computer1和computer2,在computer1为文件上传端,computer2为文件的接收端,
在computer1中的文件上传代码:
//调用上传文件的命令
TelnetOutputStreamtos=ftpClient.put(file);
//打开一个输出流
DataOutputStreamdos=newDataOutputStream(tos);
//循环读取文件上传数据,while((sendFile.getFilePointer()+1)
while((dataLength=sendFile.read(b))!=-1)
{
dos.write(b,0,dataLength);//把数据写入输出流
dos.flush();
}
在computer2的接收文件代码:
RandomAccessFilereceiveFile=newRandomAccessFile(requestfile,"rw");
BufferedInputStreambin=newBufferedInputStream(dsocket.getInputStream());
bin=newBufferedInputStream(dsocket.getInputStream());
while((dataLength=bin.read(buf))!=-1)
{
receiveFile.write(buf,0,dataLength);//写入文件
}//while()
但是,当文件在上传的过程中,我把computer1端(发送端)的网线断开了,再重新连接上的话,在发送端就可以获得异常,实现重新连接到computer2,但是在computer2的接受代码中不会出现异常,但是ftpClient已经是断开了,无法再重新连接到computer1了。
要怎样才能实现computer2在接收数据的同时,如果computer1断网了,获取到异常等,等computer1重新连接上网络时,可以重新连接到computer1,继续上传文件。