Sending picture in Android (Socket Programming)

2019-01-15 23:01发布

问题:

I'm trying to Receive Picture on my Android phone From Server using socket programming.

I use this code but in.read() in fourth line always return -1

how can i fix this problem?

Client Code:

try {
   x = new byte[picLength2];                          
   int current = 0;
   int byteRead = in.read(x, 0, x.length);                          
   current = byteRead;
   do {
      byteRead = in.read(x, current, (x.length - current));
      if (byteRead >0) {
        current += byteRead;
      }
   } while (byteRead > -1);
}catch (IOException e){
   e.printStackTrace();
}

Server Code:

 try {

     File myFile = new File("C:/onlinegame/null.jpg");
     mybytearray = new byte [(int)myFile.length()];
     FileInputStream fis = new FileInputStream(myFile);
     BufferedInputStream bis = new BufferedInputStream(fis);
     bis.read(mybytearray,0,mybytearray.length);
 } catch (FileNotFoundException e) {
     e.printStackTrace();
 }
 try {
     DataOutputStream out = new DataOutputStream(socket.getOutputStream());
     out.write(mybytearray);

  } catch (IOException ex) {
     Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
  }