2014-08-29 57 views
1

我正试图从Android将文件发送到带有java服务器的计算机终端。 我留下你写下面的代码来使用发送和接收文件,并考虑收到错误。通过套接字接收文件时出错Android/Java

的Android(发件人客户端):

   byte[] mybytearray = new byte[(int) selectedFile.length()]; 
       BufferedInputStream bis = new BufferedInputStream(new FileInputStream(selectedFile)); 
       bis.read(mybytearray, 0, mybytearray.length); 
       OutputStream os = socket2.getOutputStream(); 
       os.write(mybytearray, 0, mybytearray.length); 
       os.flush(); 

的Java(接收服务器):

    76)int lenghtf = Integer.parseInt(lenght); 
        77)byte[] mybytearray = new byte[lenghtf]; 
        78)InputStream is = socket.getInputStream(); 
        79) FileOutputStream fos = new FileOutputStream(namef); 
        80) BufferedOutputStream bos = new BufferedOutputStream(fos); 
        81) int bytesRead = is.read(mybytearray, 0, mybytearray.length); 
        82) bos.write(mybytearray, 0, bytesRead); 
        83)bos.close(); 

我得到这个错误

enter image description here

回答

1

接收机:

FileOutputStream out1 = new FileOutputStream("File Ricevuti\\"+namef); 
        byte[] buf = new byte[socket.getReceiveBufferSize()]; 
        int len = 0; 
        while ((len = inp.read(buf)) != -1) { 
         out1.write(buf, 0, len); 
         out1.flush(); 
         //out1.flush(); 
        } 

        out1.close(); 

发件人:

InputStream in = new FileInputStream(f); 

       byte[] buf = new byte[socket2.getSendBufferSize()]; 
       int len = 0; 
       while ((len = in.read(buf)) != -1) { 
        out.write(buf, 0, len); 

       } 
       in . close(); 
       out.close(); 
+1

这是我测试的工作! – 2014-08-30 09:16:13