Hi Bulat,

Thanks.  Yes it helps with an earlier implementation I wrote (below).
But surely there must be a better way to write this.  My code is way
to verbose.

-John

---

doProxyServer handleToClient handleToServer = do
  eof <- hIsEOF handleToServer
  if not eof
    then do
      ready <- hReady handleToServer
      if ready
        then do
          text <- hGetChar handleToServer
          putChar text
          hPutChar handleToClient text
          doProxyServer handleToClient handleToServer
        else do
          hPutStr handleToClient "\n"
          doProxyClient handleToClient handleToServer
    else do
      hClose handleToServer
      hClose handleToClient

doProxyClient handleToClient handleToServer = do
  ready <- hReady handleToClient
  if ready
    then do
      text <- hGetChar handleToClient
      putChar text
      hPutChar handleToServer text
      doProxyClient handleToClient handleToServer
    else do
      hPutStr handleToServer "\n"
      doProxyServer handleToClient handleToServer

listen = withSocketsDo $ do
  putStrLn "Listening..."
  socket <- listenOn $ PortNumber 8082
  (handleToClient, hostName, portNumber) <- accept socket
  putStrLn "Connected to client"
  handleToServer <- connectTo "localhost" (PortNumber 8080)
  hSetBuffering handleToServer LineBuffering
  putStrLn "Connected to server"
  doProxyClient handleToClient handleToServer
  hClose handleToServer
  putStrLn "Closed server"
  hClose handleToClient
  putStrLn "Closed client"
  sClose socket

main = listen


On 9/20/06, Bulat Ziganshin <[EMAIL PROTECTED]> wrote:
Hello John,

Wednesday, September 20, 2006, 3:59:36 PM, you wrote:

> I'm trying to use haskell to put together a TCP proxy I can put
> between my browser and my webserver.

> This is as far as I got.  The webserver isn't returning my request:

hSetBuffering handleToServer LineBuffering

may help


--
Best regards,
 Bulat                            mailto:[EMAIL PROTECTED]


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to