android客户端图像发送NegativeArraySizeException

时间:2016-10-25 14:36:35

标签: java android sockets

我正在将我的android图库中的图像发送到java服务器;但是,我得到了NegativeArraySizeException。谁能告诉我我做错了什么?我不明白问题是什么。提前谢谢。

Android客户端:

Socket sock;
sock = new Socket("IP", PORT);
System.out.println("Connecting...");

OutputStream os = sock.getOutputStream();


File myFile = new File (selectedImagePath);
byte [] mybytearray  = new byte [(int)myFile.length()];
FileInputStream fis = new FileInputStream(myFile);
BufferedInputStream bis = new BufferedInputStream(fis);
bis.read(mybytearray,0,mybytearray.length);
System.out.println("Sending...");
os.write(mybytearray,0,mybytearray.length);
os.flush();

sock.close();

Java Server

公共类接收{

public static void main(String[] args) throws Exception {
    ServerSocket serverSocket = new ServerSocket(PORT);
    Socket socket = serverSocket.accept();

    byte[] sizeAr = new byte[4];
    InputStream inputStream = socket.getInputStream();


    inputStream.read(sizeAr);
    int size = ByteBuffer.wrap(sizeAr).asIntBuffer().get();

的System.out.println(大小); //获得负值

    byte[] imageAr = new byte[size];
    inputStream.read(imageAr);

    BufferedImage image = ImageIO.read(new ByteArrayInputStream(imageAr));

    System.out.println("Received " + image.getHeight() + "x" + image.getWidth() + ": " + System.currentTimeMillis());
    ImageIO.write(image, "jpg", new File("C:/Users/Dan/Pictures/NewCat.jpg"));

    serverSocket.close();
}

}

0 个答案:

没有答案