On Thu, May 14, 2009 at 9:10 PM, David Leimbach <[email protected]> wrote:
> > > On Thu, May 14, 2009 at 8:57 PM, David Leimbach <[email protected]> wrote: > >> >> >> On Thu, May 14, 2009 at 8:54 PM, Don Stewart <[email protected]> wrote: >> >>> > I'm speaking specifically of the encode/decode functions. I have no >>> idea how >>> > they're implemented. >>> > >>> > Are you saying that encode is doing something really simple and the >>> default >>> > encodings for things just happen to be big endian? If so, then I >>> understand >>> > the pain.... but it still means I have to roll my own :-) I guess if >>> one must >>> > choose, big endian kind of makes sense, except that the whole world is >>> little >>> > endian now, except for networks :-) (No one *really* cares about >>> anything but >>> > x86 anyway these days right?) >>> >>> Oh, 'encode' has type: >>> >>> encode :: Binary a => a -> ByteString >>> >>> it just encodes with the default instances, which are all network order: >>> >>> http://en.wikipedia.org/wiki/Endianness#Endianness_in_networking >>> >> >> Yeah I understand that Big Endian == Network Byte Order... which would be >> true, if I wasn't talking about Plan 9's 9P protocol which specifies little >> endian bytes on the wire (as far as I can tell anyway from the man page). >> >> Dave >> > > FYI here's what I've ended up trying to write to negotiate the "version" of > a 9p server: > > main = withSocketsDo $ > do > ainfo <- getAddrInfo Nothing (Just "127.0.0.1") (Just "6872") -- > hardcoded for now, it's an IRC filesystem server > let a = head ainfo > sock <- socket AF_INET Stream defaultProtocol > connect sock (addrAddress a) > sendAll sock $ (toLazyByteString (putWord32le (fromIntegral (16 > ::Int32)))) > sendAll sock $ (encode (100 ::Int8)) > sendAll sock $ (toLazyByteString (putWord32le (fromIntegral (1024 > ::Int32)))) > sendAll sock $ (encode (C.pack "9P2000")) > > I totally forgot the tag part of 9p.... ugh. I think I should probably just go to bed now. > > I feel like I should use wireshark or something to watch the bytes :-) I'm > not feeling very sure about this. > > >> >>> >>> -- Don >>> >> >> >
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
