mirror of
https://github.com/composewell/streamly.git
synced 2024-10-28 05:00:28 +03:00
22 lines
719 B
Haskell
22 lines
719 B
Haskell
-- A TCP client that does the following:
|
|
-- * Reads multiple filenames passed on the command line
|
|
-- * Opens as many concurrent connections to the server
|
|
-- * Sends all the files concurrently to the server
|
|
|
|
import System.Environment (getArgs)
|
|
|
|
import Streamly
|
|
import qualified Streamly.Prelude as S
|
|
import qualified Streamly.Internal.FileSystem.Handle as IFH
|
|
import qualified Streamly.Internal.Network.Inet.TCP as TCP
|
|
|
|
import System.IO (withFile, IOMode(..))
|
|
|
|
main :: IO ()
|
|
main =
|
|
let sendFile file =
|
|
withFile file ReadMode $ \src ->
|
|
S.fold (TCP.writeChunks (127, 0, 0, 1) 8090)
|
|
$ IFH.toChunks src
|
|
in getArgs >>= S.drain . parallely . S.mapM sendFile . S.fromList
|