2011/10/18 Ertugrul Soeylemez <[email protected]>: > A proxy server acts a lot like an echo server. The difference is that > usually before the actual proxying starts you have a negotiation phase, > and instead of echoing back to the same socket, you just write it to a > different one. Here is an (untested) example: > > (clientH, clientHost, clientPort) <- accept serverSock > destH <- negotiate clientH > doneVar <- newEmptyMVar > > forkIO (hGetContents clientH >>= hPutStr destH >>= putMVar doneVar) > forkIO (hGetContents destH >>= hPutStr clientH >>= putMVar doneVar) > replicateM_ 2 (takeMVar doneVar) > mapM_ hClose [clientH, destH]
This code seems like it says: Allow the client to write to the server one time. Allow the server to write to the client one time. Teardown both sides of the connection. Am I reading this correctly? This is, indeed, a proxy; but I'm not sure it could support a wide range of protocols. -- Jason Dusek () ascii ribbon campaign - against html e-mail /\ www.asciiribbon.org - against proprietary attachments _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
