netty 3.4.5 버전을 사용 중입니다. 네트워크에서 패킷을 받으면 프레임의 길이는 헤더를 기반으로합니다. 즉헤더 기반의 Netty Frame 디코딩
header1 -> 길이가 70 바이트 인 데이터.
header2 -> 길이가 140 바이트 인 데이터.
header3 -> 길이가 28 바이트 인 데이터.
길이 기반 프레임 인코딩을 사용하고 싶습니다. 이 방법을 제안 해주세요. 다른 방법이 있다면 나에게 제안하십시오.
는netty 3.4.5 버전을 사용 중입니다. 네트워크에서 패킷을 받으면 프레임의 길이는 헤더를 기반으로합니다. 즉헤더 기반의 Netty Frame 디코딩
header1 -> 길이가 70 바이트 인 데이터.
header2 -> 길이가 140 바이트 인 데이터.
header3 -> 길이가 28 바이트 인 데이터.
길이 기반 프레임 인코딩을 사용하고 싶습니다. 이 방법을 제안 해주세요. 다른 방법이 있다면 나에게 제안하십시오.
는header1
이 header2
이 header3
가 같은 길이있는, 당신은이 같은 LengthFieldBasedFrameDecoder
에서 오버라이드 getUnadjustedFrameLength
하여이 작업을 수행 할 수 있다면 감사합니다.
switch(buf.getUnsignedInt) { //get header here
case header1 : return 70;
case header2: return 140;
case header3: return 28;
}
i이 코드는 확인하지 않았습니다. 너 그걸 확인 했니? – shivadarshan
그것이 작동합니까? – shivadarshan
실제로 'headerX'가 나머지 바이트의 길이를 나타내는 경우 길이 필드 기반 프레임이 아닙니다. – jilen
@jilen 위의 시나리오를 달성하기위한 아이디어를주십시오 ... – shivadarshan
netty 소스 코드를 읽은 후, 가장 쉬운 방법은'LengthFieldBasedFrameDecoder' ('header1, header2, header3'의 길이를 필요로합니다)의'getUnadjustedFrameLength' 메소드를 오버라이드하는 것입니다. 같은 경우) – jilen