@@ -27,38 +27,38 @@
27-- this example can be written even more succinctly by using higher level
27-- this example can be written even more succinctly by using higher level
28-- operations from "Streamly.Network.Inet.TCP" module.
28-- operations from "Streamly.Network.Inet.TCP" module.
31−-- {-\# LANGUAGE FlexibleContexts #-}
31+-- >>> :set -XFlexibleContexts
33−-- import Data.Function ((&))
33+-- >>> import Data.Function ((&))
34−-- import Network.Socket
34+-- >>> import Network.Socket
35−-- import Streamly.Network.Socket (SockSpec(..))
35+-- >>> import Streamly.Network.Socket (SockSpec(..))
37+-- >>> import qualified Streamly.Data.Fold as Fold
37−-- import qualified Streamly.Prelude as Stream
38+-- >>> import qualified Streamly.Data.Stream as Stream
39+-- >>> import qualified Streamly.Data.Stream.Concurrent as Concur
38−-- import qualified Streamly.Network.Socket as Socket
40+-- >>> import qualified Streamly.Network.Socket as Socket
40−-- main = do
44+-- main = do
41−-- let spec = SockSpec
45+-- let spec = SockSpec
42−-- { sockFamily = AF_INET
46+-- { sockFamily = AF_INET
43−-- , sockType = Stream
47+-- , sockType = Stream
44−-- , sockProto = defaultProtocol
48+-- , sockProto = defaultProtocol
45−-- , sockOpts = []
49+-- , sockOpts = []
47−-- addr = SockAddrInet 8090 (tupleToHostAddress (0,0,0,0))
51+-- addr = SockAddrInet 8090 (tupleToHostAddress (0,0,0,0))
48−-- in server spec addr
52+-- in server spec addr
52−-- server spec addr =
54+-- server spec addr =
53−-- Stream.unfold Socket.accept (maxListenQueue, spec, addr) -- ParallelT IO Socket
55+-- Stream.unfold Socket.acceptor (maxListenQueue, spec, addr)
54−-- & Stream.mapM (Socket.forSocketM echo) -- ParallelT IO ()
56+-- & Concur.mapMWith (Concur.eager True) (Socket.forSocketM echo)
55−-- & Stream.fromParallel -- Stream IO ()
57+-- & Stream.fold Fold.drain
56−-- & Stream.drain -- IO ()
58−-- echo sk =
58+-- echo sk =
59−-- Stream.unfold Socket.readChunks sk -- Stream IO (Array Word8)
59+-- Stream.unfold Socket.chunkReader sk -- Stream IO (Array Word8)
60−-- & Stream.fold (Socket.writeChunks sk) -- IO ()
60+-- & Stream.fold (Socket.writeChunks sk) -- IO ()
63-- = Programmer Notes
63-- = Programmer Notes