0
@Override
public void messageReceived(NextFilter nextFilter, IoSession session, Object message) throws Exception
{
}
메시지를 바이트 스트림으로 읽어야합니다. 그러나 전체 메시지가 수신되도록 보장하지는 않습니다. 16 바이트 미만의 메시지는 삭제해야합니다. 바이트의 전체 길이가 16에 도달하면이를 디코드하여 사용해야합니다. 그리고 어떤 경우에도 17 바이트를 호출하면 16을 처리하고 다음 사이클을 위해 다른 하나는 남겨 두어야합니다. reset() 및 mark()가 도움이되었습니다. 미나에게 그걸 완충시킬 수있는 방법이 있나. 아니면 내 버퍼를 사용해야합니까?Mina.MessageReceived()에서 바이트 스트림 읽기.
그래서 현재 세션에 바이트를 유지 저장할 수 있습니다; 16보다 작 으면 나는 정말로 무엇을 부르면 좋습니까? 어떤 정확한 방법. 2) OK. 3.) 세션에 남은 것을 어떻게 저장할 수 있습니까? ioSession에 증가하는 바이트 []를 제안 하시겠습니까? , thankx 답장 – dinesh707
1에 대해, 당신은 buffer.position (buffer.limit()) 메소드를 호출 할 수있다. 그렇지 않다면, mina 프레임웍은 messageReceived 메소드를 호출 할 것이다. –
2, 네, 남아있는 바이트를 바이트로 저장할 수 있습니다.] 또는 새로운 IoBuffer는 데이터를 저장할 수있는 한 나머지 바이트 또는 다른 구조체를 포함합니다. 그러면 프로그램이 다음 데이터를받을 때 먼저 세션을 확인해야합니다. –