I think I found a better solution. I put in a call to session.close() in
the messageWritten method of the IoHandler. This way I make sure the
message gets written before I close the session.
PS. Its amazing how much quicker you find a solution once you post to the
mailing list :P
On 3/12/07, Mark Webb <[EMAIL PROTECTED]> wrote:
in the Echo Server's messageReceived method, I put a session.close() call
in, and everything works fine.
On 3/12/07, Mark Webb < [EMAIL PROTECTED]> wrote:
>
> I believe that is exactly what the problem is. Should EchoServer close
> the connection, or is it designed to just read forever?
>
>
> On 3/12/07, James Im <[EMAIL PROTECTED]> wrote:
> >
> > I believe that if the Echoserver does not close the connection, the
> > method read() in the client will not return -1 and will wait for more
> > data.
> >
> > You probably have read the whole String.
> >
> > Mark Webb wrote:
> > >Correction on the email. I can get the linux 'telnet' program to
> > work with
> > >the EchoServer, but not my program whose code is listed below.
> > >
> > >
> > >On 3/12/07, Mark Webb < [EMAIL PROTECTED]> wrote:
> > >>
> > >>I am trying to get the Echo server example working in the 1.1 branch
> > with
> > >>a simple telnet application. I hope to use this echo server for
> > more
> > >>in the
> > >>near future, but I have run into a problem I can't seem to fix. I
> > >>start up
> > >>the EchoServer example and telnet to port 8080. I type in something
> > like
> > >>"Hello World", and never get anything back. I am not sure if this
> > is a
> > >>problem with the codec, the telnet program or something else. I
> > even
> > >>wrote
> > >>a simple program that looks like the following:
> > >>
> > >>for( ; ; ){
> > >>
> > >> Socket socket = new Socket( host, port );
> > >> OutputStream out = socket.getOutputStream();
> > >> InputStream in = socket.getInputStream();
> > >>
> > >> out.write( "Hello World\r\n".getBytes() );
> > >> out.flush();
> > >>
> > >> int read = 0;
> > >> byte[] buf = new byte[16];
> > >> while( (read = in.read(buf)) != -1 ){
> > >> System.out.println( new String(buf,0,read) );
> > >> }
> > >>
> > >> socket.close ();
> > >> Thread.sleep(1000);
> > >> }
> > >>
> > >>The problem is that the first call to in.read(buf) works fine. The
> > >>second
> > >>call hangs and waits for more data. I am getting this problem
> > without
> > >>modifying the EchoServer code, so I think I need some help.
> > >>
> > >>Thank you.
> > >>
> > >>
> > >
> > >
> >
> > _________________________________________________________________
> > Download din yndlingsmusik på MSN Music: http://www.msn.dk/music -
> > det er
> > nemt og billigt
> >
> >
>
>
> --
> ..Cheers
> Mark
--
..Cheers
Mark
--
..Cheers
Mark