C # Сокеты MemoryStream - PullRequest
       25

C # Сокеты MemoryStream

0 голосов
/ 17 марта 2019

Итак, я пытаюсь вызвать метод, который преобразует целое число в 4 байта,

Преобразование записывается так -

    public void put4(int var1)
    {
        this.payload[++this.offset - 1] = (byte)(var1 >> 24);
        this.payload[++this.offset - 1] = (byte)(var1 >> 16);
        this.payload[++this.offset - 1] = (byte)(var1 >> 8);
        this.payload[++this.offset - 1] = (byte)var1;
    }

, который ставит

var1

в 4 байта

но как я могу использовать это с потоком памяти?

Я знаю, что могу послать один байт с

  MemoryStream ms = new MemoryStream();

  ms.WriteByte(1);

, но я хочу отправить "1 "в 4 байтах

я попробовал вот что:

 ms.WriteByte.put4(1);

Я очень смущен, если честно с вами, так как я не знаком с сетью или байтами, но чтоЯ знаю, что это конкретное целое число должно быть отправлено в 4 байта, а не как один байт.

1 Ответ

0 голосов
/ 17 марта 2019

Есть несколько способов сделать это, например, вы можете использовать BinaryWriter класс

Однако, чтобы ответить на ваш вопрос относительно MemoryStream

BitConvert.GetBytes (Int32)

Возвращает указанное 32-разрядное целое число со знаком в виде массива байтов.

var bytes = BitConvert.GetBytes(someInt);

stream.Write(bytes,0,bytes.Length);

Примечание : Вы должны быть осторожны с используемой платформой и порядком байтов

...