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
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe