사람이 내가 수행하는자바 소켓의 InputStream 읽기 잘못된 데이터
- 클라이언트 C에서 UCHAR 배열 ++되는 화상 데이터를 보낼 것입니다이 코드를 잘못 무엇을 알 수 있습니다.
- Java 서버는 서버 소켓을 사용하여이 데이터를 수신하고 바이트 배열로 저장합니다. 내가
buffer
에 음의 값을 얻고있다inputstream in
에서 읽는 동안 여기
은 ...
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();
코드입니다.
이미지의 크기를 확인 했습니까? – Xabster
예 300 바이트를 정확히 보내고 있습니다 ... – Haris