[OT?] Tying a socket to stdin/stdout w/dup2() ?
cpressey at catseye.mine.nu
Fri Nov 7 13:03:42 PST 2003
On Fri, 7 Nov 2003 12:35:55 -0500
Charles Swiger <cswiger at mac.com> wrote:
> On Nov 7, 2003, at 12:19 PM, Chris Pressey wrote:
> > I've got a C program that opens a TCP/IP socket and makes a client
> > connection. What I'd like to do is to 'tie' the socket to this
> > program's standard I/O, so that anything that is fed into this
> > program's
> > stdin, is immediately sent to the socket, and anything that appears
> > on the socket, is immediately sent out this program's stdout. (The
> > end effect being a sort of pathologically simple version of what
> > telnet,(or inetd or ucspi-tcp) does.)
> Take a look at netcat, from /usr/ports/net/netcat.
Ahh great, now I'm blind! :)
Seriously - it seems to confirm that I was confused. Looks like you can
a) dup the socket to stdin/out, then exec a program (a la inetd); or
b) keep stdin/out and the socket, and multiplex between them (telnet).
Since I want my program to act as a pipe source/sink, rather than
exec-ing something else, I'll have to go with b), which means I'll have
to face the select(2) music.
Anyway, thanks for the pointer...
More information about the freebsd-questions