[Haskell-cafe] Network.Socket Woes

Adam Langley agl at imperialviolet.org
Fri Mar 7 12:48:48 EST 2008

On Fri, Mar 7, 2008 at 8:10 AM, Scott Bell <sebell at gmail.com> wrote:
>  my test program. The Haskell version, however, does not
>  return from recvFrom. I've also tried wrapping this in a
>  withSocketsDo, with no effect.

So this is a long standing, ah, issue with the Network modules.

Try sending a UDP packet to port 45607 and you'll find that the
Haskell code gets it.

hex(45607) = 0xb227
0x27b2 = 10162

In short, PortNum doesn't do the endian conversion for you. And I
don't know a good way to figure out the endianness of the underlying
system from Haskell I'm afraid. I usually end up FFIing out to htons
or just assuming that the system is little-endian.

We should really fix this unless there's some trick that I've been
missing all this time.


Adam Langley agl at imperialviolet.org http://www.imperialviolet.org

More information about the Haskell-Cafe mailing list