Witam serdecznie.

Napotkałem następujący problem z którym nie potrafię sobie poradzić. Z aplikacji chcę wysłać dane do konwertera ETHERNET/RS485. Jeśli wysyłam tekst wszystko jest w porządku. Problem pojawia się jak chce wysłać wartości spoza zakresu ASCII.
Główny problem jest z wartością 0x00. Poniżej kod, w którym wszystko działa dobrze:

private void button1_Click(object sender, EventArgs e)
{
      TcpClient _clientSocket = new TcpClient();
      _clientSocket.Connect("192.168.11.2", 5000);
      NetworkStream _stream = _clientSocket.GetStream();
      var writer = new BinaryWriter(_stream);
      byte[] _outStream = System.Text.Encoding.ASCII.GetBytes("Pisze sobie cos bez.\r");
      writer.Write(_outStream, 0, _outStream.Length);
      if (_clientSocket != null)
      {
            _clientSocket.Close();
            _clientSocket = null;
      }
}

Natomiast, gdy próbuje wysłać coś takiego:

private void button1_Click(object sender, EventArgs e)
{
      byte[] buf = new byte[32];
      Array.Clear(buf, 0, 32);
      TcpClient _clientSocket = new TcpClient();
      _clientSocket.Connect("192.168.11.2", 5000);
      NetworkStream _stream = _clientSocket.GetStream();
      var writer = new BinaryWriter(_stream);
      writer.Write(buf, 0, buf.Length);
      if (_clientSocket != null)
      {
            _clientSocket.Close();
            _clientSocket = null;
      }
}

Wysyła mi się
0x00 0x00 0x00 0x00 0x80
lub
0x00 0x00 0x00 0xE0 (generalnie 4 bit przypadkowy).
Poza tym widać, że program przywiesza się i odzyskuje sprawnośc pewnie dopiero po jakimś timeoucie.

Czy da się jakoś wysyłać liczby z zakresu 0x00 do 0xFF: