Hi, thank you for your kind.
Could i ask what the diff. between return true and false. I mean what mina
does in both cases? I could not find this in the wiki.
2009/4/6 Ashish <[email protected]>

>  >
> > The message format is the fixed-length message which is defined by
> > FRAME_LENGTH.
> > The following is my doDecode method:
> >
> > protected boolean doDecode(IoSession session, IoBuffer in,
> > ProtocolDecoderOutput out) throws Exception {
> >  int remain = in.remaining();
> >  if (remain >= FRAME_LENGTH){
> >    byte [] data = new byte [FRAME_LENGTH];
> >    while (remain >= FRAME_LENGTH){
> >          in.get(data,0,FRAME_LENGTH);
> >          out.write(data);
> >          out.flush();
> >          System.out.println("remain data:"+remain);
> >          remain = in.remaining();
> >    }
> >    return false;
> >  }
> >  return false;
> > }
> > The server keep sending message to my client and I decode the message in
> > this doDecode.
> > In my test, the "remain data" in the console seemed to be keep going up
> util
> > got the java heap space outofmemoryError.
> > Three notes:
> > 1> Why I always use return false: I don't understand the diff between
> true
> > or false. At first, I thought the when I got the enough data to put into
> the
> > out, I should use return true. But I got error. So I alway use false and
> > currently, the logic seems correct.
>
> Use true, when you have received all the data necessary to decode. And
> once you have complete data, then only you write to protocol decoder
> output.
>
> Simple pseduo code
> 1. check if the incoming data equals to data needed
> 2. No return false, reset the position to beginning
> 3. keep in this loop till, you have all the data
> 4. All the data received, write to decoder output and return true
>
>
> Check out this page on wiki
>
> http://mina.apache.org/tutorial-on-protocolcodecfilter-for-mina-2x.html
>
> > 2> Why I use out.flush. I found if I don't do that, the messageReceived
> > method couldn't get correct every message. Some message will lost and
> others
> > may be duplicated.
>
> Not sure on this. Sorry
>
> > 3> The data transfer speed is about 1MB/s.
> >
> > Any friends help me?
> > Thank you in advance!
> >
> > --
> > Best Regards
> > DAI Jun
> >
>
>
>
> --
> thanks
> ashish
>
> Blog: http://www.ashishpaliwal.com/blog
> My Photo Galleries: http://www.pbase.com/ashishpaliwal
>



-- 
Best Regards
DAI Jun

Reply via email to