title: Server does not get the message of client
body: <p>I successfully made a WebSocket server in C# which I can connect to. I make the handshake as RFC 6455 requires it.</p>
  
  <p>Whatever I send (via <code>WebSocket.send()</code>) to it (for example "asd") the stream only has 9 bytes of data which is "unrepresentable" by UTF8.</p>
  
  <pre><code>using System.Net.Sockets;
  using System.Net;
  using System;
  using System.Text;
  using System.Text.RegularExpressions;
  using System.Security.Cryptography;
  
  class Server
  {
      public static void Main()
      {
          TcpListener server = new TcpListener(IPAddress.Parse("127.0.0.1"), 80);
  
          server.Start();
  
          TcpClient client = server.AcceptTcpClient();
          NetworkStream stream = client.GetStream();
  
          Boolean isHandshaked = false;
  
          while (true)
          {
              while (!stream.DataAvailable)
              {
              }
  
              Byte[] bytes = new Byte[client.Available];
  
              stream.Read(bytes, 0, bytes.Length);
  
              if (!isHandshaked)
              {
                  Byte[] response = Encoding.UTF8.GetBytes("HTTP/1.1 101 Switching Protocols" + Environment.NewLine
                      + "Connection: Upgrade" + Environment.NewLine
                      + "Upgrade: websocket" + Environment.NewLine
                      + "Sec-WebSocket-Accept: " + Convert.ToBase64String(
                          SHA1.Create().ComputeHash(
                              Encoding.UTF8.GetBytes(
                                  new Regex("Sec-WebSocket-Key: (.*)").Match(
                                      Encoding.UTF8.GetString(bytes)
                                  ).Groups[1].Value.Trim() + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"
                              )
                          )
                      ) + Environment.NewLine
                       + Environment.NewLine);
  
                  stream.Write(response, 0, response.Length);
  
                  isHandshaked = true;
              }
              else
              {
                  Console.WriteLine(Encoding.UTF8.GetString(bytes));
              }
          }
      }
  }
  </code></pre>
  
  <p>Where I missed something?</p>