Quelqu'un peut-il dire ce mal avec ce code, ce que je fait est queJava Socket INPUTSTREAM Lecture erronée des données
- client envoyer des données d'image qui est un tableau uchar de C++.
- Le serveur Java reçoit ces données à l'aide du socket serveur et les stocke en tant que tableau d'octets.
Voici le code ...
private ServerSocket serverSocket;
InputStream in;
int imageSize=300;//921600;//expected image size 640X480X3
public imageReciver(int port) throws IOException {
serverSocket = new ServerSocket(port);
}
Socket server = null;
server = serverSocket.accept();
in = server.getInputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte buffer[] = new byte[100];
int remainingBytes = imageSize; //
while (remainingBytes > 0) {
int bytesRead = in.read(buffer);
if (bytesRead < 0) {
throw new IOException("Unexpected end of data");
}
baos.write(buffer, 0, bytesRead);
remainingBytes -= bytesRead;
}
in.close();
byte imageByte[] = new byte[imageSize];
imageByte = baos.toByteArray();
baos.close();
Pendant la lecture de inputstream in
Je reçois une valeur négative sur buffer
.
Avez-vous vérifié la taille de l'image? – Xabster
Oui, j'envoie 300 octets exactement ... – Haris