Date: Fri, 7 Nov 2003 13:06:15 -0800 From: Chris Pressey <cpressey@catseye.mine.nu> To: Charles Swiger <cswiger@mac.com> Cc: freebsd-questions@freebsd.org Subject: Re: [OT?] Tying a socket to stdin/stdout w/dup2() ? Message-ID: <20031107130615.1824d783.cpressey@catseye.mine.nu> In-Reply-To: <D7649704-1148-11D8-AD24-003065ABFD92@mac.com> References: <20031107091909.6d2a0acc.cpressey@catseye.mine.nu> <D7649704-1148-11D8-AD24-003065ABFD92@mac.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 7 Nov 2003 12:35:55 -0500 Charles Swiger <cswiger@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 either: 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... -Chris
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031107130615.1824d783.cpressey>