Сериализация типов данных для использования по сети в F # - PullRequest
2 голосов
/ 27 июня 2010

Я хочу отправить Uint16 по сети. Я посмотрел на различные доступные .NET сериализаторы. Согласно этому F # Сериализированному Дискриминационному Союзу, почему так много байтов? при использовании BinaryFormatter будет генерировать служебные байты, которые представляют метаданные для этого типа. В результате этого UInt16, прошедший через этот форматер, не может быть представлен как 16 бит. Мне нужен способ преобразовать этот UInt16 так, чтобы я получил от него 16 битов, которые я могу отправить программе на другом конце сокета.

Ответы [ 2 ]

3 голосов
/ 27 июня 2010

Я думаю, вы можете использовать System.BitConverter класс:

static member GetBytes : 
        value:uint16 -> byte[] 

http://msdn.microsoft.com/en-us/library/8wwsdz3k.aspx

0 голосов
/ 27 июня 2010

Я только что нашел класс BitConverter, и похоже, что он делает то, что я хочу:

byte_array = BitConverter.GetBytes header.id

, где header.id - UInt16

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...