Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.io.StreamCorruptedException:发送图像时流标头无效_Java_Sockets - Fatal编程技术网

java.io.StreamCorruptedException:发送图像时流标头无效

java.io.StreamCorruptedException:发送图像时流标头无效,java,sockets,Java,Sockets,在我的服务器中,我试图分割一个映像并将其发送到客户端(这里称为资源)。问题是,当我读取对象时,我得到StreamCorruptedException 服务器端: Socket resSocket = resourceQueue.get(k).getSocket(); DataOutputStream dos = new DataOutputStream(resSocket.getOutputStream()); FileInputStream fis = new FileInputStream

在我的服务器中,我试图分割一个映像并将其发送到客户端(这里称为资源)。问题是,当我读取对象时,我得到StreamCorruptedException

服务器端:

Socket resSocket = resourceQueue.get(k).getSocket();
DataOutputStream dos = new DataOutputStream(resSocket.getOutputStream());

FileInputStream fis = new FileInputStream(chunksList.get(i));
byte[] data = new byte[fis.available()];
fis.read(data);

ObjectOutputStream oos = new ObjectOutputStream(resSocket.getOutputStream());
oos.writeObject(data);
oos.close();
客户端

ObjectInputStream ois = new ObjectInputStream(sock.getInputStream()); // Here i get the error
byte[] buffer = (byte[]) ois.readObject(); 
String path = "c:/JGCF/temp."+"jpg";
System.out.println(path);
FileOutputStream fos = new FileOutputStream(path);
fos.write(buffer);

DataOutputStream用于什么?我试图编写一个字符串。删除它并不能解决问题最有可能的是在套接字写入资源队列之前已经写入了某些内容。我们能看到从创建套接字时起处理套接字的代码吗?