Hi Matt,

Problem is that (line = buffIns.readLine()) == null does not terminate 
the loop. Since most messages ends with EndMessage, how do I know how 
many more to read before I break the loop??

Thanks,

Michael

Matthew Toseland wrote:
> On Thursday 27 August 2009 13:00:41 bbackde at googlemail.com wrote:
>   
>> You should process the messages in a Thread. Put your code into a Thread
>> that calls handler methods when a specific message arrived.
>> The Thread runs forever and receives all messages and all data...
>>     
>
> All you need to do is parse each message. The type of the message is the 
> first line, it ends at the last line, unless it has trailing data. You can do 
> this level of parsing without understanding the message. Then you can ignore 
> it if you don't understand it, or you can handle it appropriately.
>   
>> On Thu, Aug 27, 2009 at 03:22, Michael Yip<mhy831 at cs.bham.ac.uk> wrote:
>>     
>>> Hi guys,
>>>
>>> Does anyone know how to know when I've read all the PersistentPut and
>>> PersistentGet messages at the start? There's no way of knowing how many
>>> there are and I have no idea how to know when to stop reading? Below is
>>> the code I've written:
>>>
>>>        String line;
>>>        while((line = buffIns.readLine()) != null){
>>>            System.out.println(line);
>>>            _Logger.log(line);
>>>            //Capture ConnectionIdentifer to be used as salt for file
>>> insertions
>>>            if(line.contains("ConnectionIdentifier")){
>>>                helloID = line.substring(line.indexOf('=') + 1,
>>> line.length());
>>>            }
>>>            if(line.equals("EndMessage")){
>>>                //Read an extra line to see if there are more to read
>>>                //Read all persistent puts and gets
>>>                line = buffIns.readLine();
>>>                if(line.contains("Get") || line.contains("Put") ||
>>> line.contains("URI") ||line.contains("Get") || line.contains("Data")
>>> ||line.contains("Started") || line.contains("Finished")||
>>> line.contains("Simple")){
>>>                    System.out.println(line);
>>>                    _Logger.log(line);
>>>                }else{
>>>                    return true;
>>>                }
>>>            }
>>>        }
>>>
>>> but obviously the reader doesn't know when to stop and so line is never
>>> null?
>>>
>>> Thanks,
>>>
>>> Michael
>>>       
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> Devl mailing list
>>> Devl at freenetproject.org
>>> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl


Reply via email to