hcoap-0.1.2.0: example-client/Main.hs
import Network.CoAP.Client
import Network.CoAP.Transport
import Network.Socket
import Network.URI
import System.Environment
import qualified Data.ByteString.Char8 as B
main :: IO ()
main = do
args <- getArgs
if length args < 2
then printUsage
else runClient args
runClient :: [String] -> IO ()
runClient (method:uriStr:_) = do
let request = Request { requestMethod = read method :: Method
, requestOptions = []
, requestPayload = Nothing
, requestReliable = True }
withSocketsDo $ do
sock <- socket AF_INET6 Datagram defaultProtocol
bindSocket sock (SockAddrInet6 0 0 iN6ADDR_ANY 0)
let transport = createUDPTransport sock
client <- createClient transport
let (Just uri) = parseURI uriStr
response <- doRequest client uri request
putStrLn ("Got response: " ++ show response)
return ()
printUsage :: IO ()
printUsage = do
pname <- getProgName
putStrLn ("Usage: " ++ pname ++ " <method> <uri>")