commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Henri Yandell <bay...@generationjava.com>
Subject [???] Re: problem with RCommandClient
Date Tue, 29 Oct 2002 20:55:07 GMT

Not to be mean, but could you prefix the mail subject with the name of the
component if it's a mail to the Dev list Kevin?

I'm not sure what this refers to. Looks like it could be [net] but dunno.
I assume someone does :)

Thanks,

Hen

On Tue, 29 Oct 2002, Kevin Seguin wrote:

> hi,
>
> I'm trying to use RCommandClient as an rsh client.  it seems to be
> working fine, except for when I want to pipe input to a remote process
> through the output stream retrieved from
> RCommandClient.getOutputStream().  the problem is that I can't send and
> EOF to the the remote process by closing this stream, because that
> results in the socket getting closed.  so the remote process never
> completes - it hangs waiting for an EOF - or it ends when I close the
> stream, but I can't read its output because the socket gets closed.
> rock and a hard place, so to speak :)
>
> I can "fix" this by subclassing RCommandClient and returning a an output
> stream proxy that actually does a Socket.shutdownOutput() rather than
> OutputStream.close() (see code below), but this seems like something
> that ought to work out of the box.  I am just missing something?
>
> thanks,
> kevin.
>
> --- workaround class ---
>
>     class Rsh
>         extends RCommandClient
>     {
>         class OutputProxy extends OutputStreamProxy
>         {
>             private Socket mySocket;
>
>             OutputProxy(OutputStream target, Socket socket)
>             {
>                 super(target);
>                 mySocket = socket;
>             }
>
>             public void close()
>                 throws IOException
>             {
>                 mySocket.shutdownOutput();
>             }
>         }
>
>         OutputStream myOutput;
>
>         Rsh()
>         {
>         }
>
>         public OutputStream getOutputStream()
>         {
>             if (myOutput == null)
>             {
>                 myOutput = new OutputProxy(_output_, _socket_);
>             }
>             return myOutput;
>         }
>     }
>
> --
> To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail: <mailto:commons-dev-help@jakarta.apache.org>
>
>


--
To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@jakarta.apache.org>


Mime
View raw message