John Van Enk wrote:
Try something like this:
module Main where
import Network.Socket
main = withSocketsDo $ do
-- Make a UDP socket
s <- socket AF_INET Datagram defaultProtocol
-- We want to listen on all interfaces (0.0.0.0)
bindAddr <- inet_addr "0.0.0.0"
-- Bind to 0.0.0.0:30000 <http://0.0.0.0:30000>
bindSocket s (SockAddrInet 30000 bindAddr)
-- Read a message of max length 1000 from some one
(msg,len,from) <- recvFrom s 1000
putStrLn $ "Got the following message from " ++ (show from)
putStrLn msg
Does this help? As Stephan said, you missed the bind step.
That works great, thanks.
Yeah, I just assumed that the bind step was only necessary for
connection-oriented protocols. (Interestingly enough, the matching
"send" program doesn't bind at all, yet seems to work fine...)
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe