d93c181f   
   From: lacos@caesar.elte.hu   
      
    This message is in MIME format. The first part should be readable text,   
    while the remaining parts are likely unreadable without MIME-aware tools.   
      
   On Thu, 23 Sep 2010, GSA wrote:   
      
   > On Sep 23, 4:34 am, David Schwartz wrote:   
   >> On Sep 22, 11:48 am, GSA wrote:   
   >>   
   >>> I need to maintain threads as the two operations are independent. Also   
   >>> I want to keep these 2 threads running eternally.   
   >>   
   >> Maybe I'm misunderstanding. Both threads are talking to Cli and both   
   >> threads are talking to Srv. How can the two operations be independent?   
   >> If the link to Cli or Srv fails, neither thread can keep doing its   
   >> job.   
   >>   
   >> If I misunderstood and the threads don't share any sockets at all,   
   >> then if a thread loses a socket, just have it recreate that socket.   
   >>   
   >> DS   
   >   
   > I want a module which sits b/w a server and a client and passes data   
   > between them, either side to the other side.   
   > The threads do share sockets:   
   > Thread 1: SRV->Srv-Cli->CLI   
   > Thread 2: CLI->Srv-Cli->SRV   
   > the intermediate module has a server socket thru which it communicates   
   > with CLI and a client sock thru which it communicates with SRV in both   
   > the threads. am highly confused on eror handling and usage of select   
   > as an alternative   
      
   As Jorgen Grahn asked before, do you want a "TCP proxy", in other words a   
   "TCP port forwarder"? If so, do you want to use it only, or do you want to   
   study its source? For the first case, you were probably best off with   
   something widely deployed, and I think ssh was a good suggestion. Other   
   choices may include netcat, socat, stunnel, and whatever you might find on   
   freshmeat.net (ISTR tinyproxy, for example).   
      
   For the second case, if you considered a minimalistic single-threaded   
   implementation with select(), and one that supports half-open connections   
   (emerging when recv() returns an EOF condition), perhaps check out the   
   following.   
      
   (All, sorry if embedding a compressed C file is bad netiquette, but I   
   didn't want to link to my homepage again, and once included, it is smaller   
   this way. If irritated, just plonk me.)   
      
   $ uudecode forward3.c.bz2.b64   
   $ bunzip2 forward3.c.bz2   
   $ gcc -ansi -pedantic -Wall -Wextra -o forward3 forward3.c   
   $ # You might need to add -lxnet if not on GNU/Linux.   
   $ ./forward3 -h   
      
   lacos   
      
   begin-base64 644 forward3.c.bz2   
   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   
      
   [continued in next message]   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|