Skip to content

Instantly share code, notes, and snippets.

@slogsdon
Created February 13, 2016 01:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save slogsdon/4272196f8f9305b04e00 to your computer and use it in GitHub Desktop.
Save slogsdon/4272196f8f9305b04e00 to your computer and use it in GitHub Desktop.
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Control.Concurrent (forkIO)
import Control.Monad (forever)
-- import qualified Data.ByteString.Char8 as S
import Network.Socket hiding (recv)
import Network.Socket.ByteString (sendAll)
main :: IO ()
main = withSocketsDo $
do addrinfos <- getAddrInfo
(Just (defaultHints {addrFlags = [AI_PASSIVE]}))
Nothing
(Just "3000")
let serveraddr = head addrinfos
sock <- socket (addrFamily serveraddr) Stream defaultProtocol
bindSocket sock (addrAddress serveraddr)
listen sock 5
forever $ accept sock >>= forkIO . handleClientRequest
handleClientRequest :: (Socket, a) -> IO ()
handleClientRequest (conn, _) = do
sendAll conn "HTTP/1.1 200 Ok\r\ncontent-length: 0\r\n\r\n" -- $
-- S.unlines [ "HTTP/1.1 200 Ok\r\n"
-- , "content-length: 0\r\n\r\n"
-- ]
sClose conn
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment