2015-01-24 2 views
1

내 소켓 연결에 Camel + Netty를 사용합니다. camel-context 파일에서, 나는 나의 소켓 연결의 Netty를 사용하지만 난의 Netty이처럼 행동 할 :소켓 응답을 읽는 방법?

의 Netty는 inputstream.available() 동일한 크기의 입력 스트림에서 문자를 읽을해야하지만 인 Netty 블록 코드가 \r\n 또는 \r 또는 \n에서 기대 때문에 입력 스트림의 끝.

이 기능을 사용하려면 Netty를 어떻게 구성 할 수 있습니까? Netty의 어떤 옵션을 사용해야합니까?

나는 textline=true을 사용합니다.

+0

'available()'바이트를 읽는 것이 해결책이 아닙니다. 귀하의 질문은 가장 명확하지 않으며 영어로도 편집해야합니다. – EJP

답변

0

autoAppendDelimiter=false을 엔드 포인트에 추가하는 것은 어떻습니까? 아마 코드 예제가 도움이 될 것입니다.

1

설명에 따라 각 메시지 (줄)의 길이가 같은 프로토콜에서 일정 금액의 문자를 읽습니다. 코드 줄 Use textline = true은 Netty에게 텍스트 행 프로토콜을 전송할 것임을 알립니다. 즉, 행은 가변 크기이고 \r\n과 같은 일련의 문자로 종료 될 수 있습니다.

이 줄을 false로 설정하면 Netty가 EOL 터미네이터를 기다릴 필요가 없습니다. 그러나 프로토콜을 읽으려면 코덱 형식을 구현해야합니다. 코덱은 모든 줄이 동일한 길이로 표시된다는 점에서 다소 단순합니다.

관련 문제