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)
Here is an excerpt my code from .Net that works:
        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 && Connected)
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?
This is what I have but it doesn't work:
        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;
            }
        }
    }
Any help would be appreciated!