通过ftp协议在套接字上传输文件

时间:2013-01-31 23:13:36

标签: java sockets ftp serversocket

我有一个问题是通过socket发送文件(不一定是txt文件)。我有2个类:Server,Client。当我从套接字输出流中读取并想要在文件中写入字节时,它看起来工作,但当我打开文件它什么都没有。(损坏显示大小= 0 kb)。我也希望它通过套接字传输所有类型的文件。我不想使用appache commons net。 这是我的代码 服务器类

FileOutputStream toFile1 = new FileOutputStream(f);             
BufferedOutputStream toFile= new BufferedOutputStream(toFile1);
BufferedInputStream bis=new BufferedInputStream(incoming.getInputStream());
byte[]buffer=new byte[2048];
int bytesRead=0;



while((bytesRead = bis.read(buffer)) >= 0)
{   
    toFile.write(buffer, 0, bytesRead);

}

toFile.close();
toFile1.close();
bis.close();
out.println("226 Connection Closed");
out.flush();
                  }                  

客户端类

 BufferedOutputStream output = new BufferedOutputStream(socket.getOutputStream());
 byte[] buffer = new byte[60*2024];
 int bytesRead = 0;
 while ((bytesRead = input.read(buffer,0,60*1024)) != -1) {
        output.write(buffer, 0, bytesRead);
 }

1 个答案:

答案 0 :(得分:0)

该代码可能发生的唯一方法是,如果您要发送零长度文件,或者从已经位于EOF的文件输入流中读取,或者之后您正在查看错误的文件。