> > Does it enable you to, say, send raw ICMP packets? > > AFAIK, Haskell supports TCP, and nothing else. (A while back I wanted to > write an automated pinging program. But the only way I could figure out > how to do it is to call the OS "ping" utility and attempt to parse what > it writes to stdout. Oh, did I mention that's different on WinNT, WinXP > and UNIX?) >
Andrew, I thought this was relatively straightforward. Look in http://www.haskell.org/networktools/src for multi-threaded versions. Beware I wrote ping and traceroute about 5 years ago. They're pretty much straight from Stevens' book. On the other hand, I quite liked this: sequenceWhile_ :: Monad m => (a -> Bool) -> [m a] -> m () sequenceWhile_ p [] = return () sequenceWhile_ p (x:xs) = x >>= \c -> if (p c) then sequenceWhile_ p xs else return () I'd forgotten about them and I'm not particularly proud of them. I guess I could put them in hackage so that they are at least a starting point for someone. Dominic. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe