title: NetworkStream Equivelant
body: <p>I have been trying to create a metro application but there is a problem: StreamSocket doesn't really do what I want to do (I think)</p>
  
  <p>Here is an excerpt my code from .Net that works:</p>
  
  <pre><code>        try
          {
              TCP = new TcpClient(server, port);
              Stream = TCP.GetStream();
              Read = new StreamReader(Stream);
              Write = new StreamWriter(Stream);
          }
          catch (Exception e)
          {
              Console.WriteLine("Error connecting to " + server + ": " + e);
              return;
          }
  
          // Identify
          Write.WriteLine("LOGIN " + Username);
          Write.Flush();
  
          while (Connected)
          {
              try
              {
                  if ((line = Read.ReadLine()) != null &amp;&amp; Connected)
  </code></pre>
  
  <p>I can't get StreamSocket to work... it requires you to know the length of the string that's coming in and I don't know what it will be - it varies. Is there any way to do this that will work? </p>
  
  <p>This is what I have but it doesn't work:</p>
  
  <pre><code>        try
          {
              // Connect to the server (in our case the listener we created in previous step).
              await Socket.ConnectAsync(new HostName("example.com"), "1111");
          }
          catch (Exception exception)
          {
              // If this is an unknown status it means that the error is fatal and retry will likely fail.
              if (SocketError.GetStatus(exception.HResult) == SocketErrorStatus.Unknown)
              {
                  throw;
              }
          }
  
          // Create a DataWriter if we did not create one yet. Otherwise use one that is already cached.
          Writer = new DataWriter(Socket.OutputStream);
          Listener = new DataReader(Socket.InputStream);
  
          Debug.WriteLine(Socket.Information.RemoteAddress.CanonicalName); //Check if IP is correct
  
          SendRaw("LOGIN " + Nickname);
  
          string line = "";
          Connected = true;
          while (Connected)
          {
              if (Listener.UnconsumedBufferLength != 0)
              {
                  line = Listener.ReadString(Listener.UnconsumedBufferLength);
                  Debug.WriteLine(line);
              }
          }
      }
  
      async public void SendRaw(string str)
      {
          Writer.WriteString(str);
  
          // Write the locally buffered data to the network.
          try
          {
              await Writer.StoreAsync();
          }
          catch (Exception exception)
          {
              // If this is an unknown status it means that the error if fatal and retry will likely fail.
              if (SocketError.GetStatus(exception.HResult) == SocketErrorStatus.Unknown)
              {
                  throw;
              }
          }
      }
  </code></pre>
  
  <p>Any help would be appreciated!</p>