Skip to content

Instantly share code, notes, and snippets.

@luciferous
Created August 7, 2011 02:04
Show Gist options
  • Save luciferous/1129979 to your computer and use it in GitHub Desktop.
Save luciferous/1129979 to your computer and use it in GitHub Desktop.
Looping Echo
import Network (listenOn, PortID(..))
import Network.Socket
import Control.Exception
import Control.Concurrent
import Control.Monad (forever)
import System.IO
type HandlerFn = String -> Socket -> IO ()
loopEcho :: HandlerFn
loopEcho msg cs = do
forever $ do
send cs msg
threadDelay 1000000
server :: PortID -> HandlerFn -> IO ()
server port handler = do
mastersocket <- listenOn port
forever $ do
(cs, _) <- accept mastersocket
forkIO $ handler "hello" cs `finally` sClose cs
main = server (PortNumber 1234) loopEcho
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment