이 상황이 필요하고 접근하고 있습니다. 많은 것을 읽었으며 이에 대한 예제 나 텍스트를 찾지 못했습니다. 나는 2 개의 클라이언트로부터 데이터를받는 하나의 서버 소켓을 가지고있다 : a) 수축 된 스트림을 보내는 클라이언트로부터. b) ASCII 스트림을 보내는 클라이언트에서. 이 코드는 잘 작동 각 상황에입력 스트림이 수축되었는지 여부를 확인하십시오.
bufferEnt = new char[3025];
Arrays.fill(bufferEnt,' ');
input = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
intLongBuffer = input.read(bufferEnt);
strMessage = new String(bufferEnt).trim();
, 변수 strMessage
정확한 정보를 가지고
inflater = new InflaterInputStream(clientSocket.getInputStream());
bout = new ByteArrayOutputStream(3025);
int b;
while ((b = inflater.read()) != -1) {
bout.write(b);
}
strMessage = new String(bout.toByteArray());
b)는 ASCII 스트림으로부터 수신 :
A)는 스트림 수축 받기 하지만 스트림이 수축되었을 때와 언제 그렇지 않은지를 확인해야하므로 각 케이스에 올바른 코드를 적용 할 수 있습니다. 이것이 바로 제가 겪은 큰 문제입니다! 당신이 예외를 얻을 것이다 수축 스트림이 아닌 경우
클라이언트를 제어합니까? 그렇다면 스트림 데이터 유형을 나타내는 헤더 값을 추가하십시오. – jtahlborn