// Read out and print the message received from the socket.
        private async void StartReader(Windows.Networking.Proximity.ProximityStreamSocket socket,
                                       Windows.Storage.Streams.DataReader reader)
        {
            uint initialLength = 4;

            try
            {
                await reader.LoadAsync(initialLength);

                uint msgLength = (uint)reader.ReadInt32();

                try
                {
                    await reader.LoadAsync(msgLength);

                    string message = reader.ReadString(msgLength);
                    WriteMessageText("Received message: " + message + "\n");

                    // After receiving a message, listen for the next message.
                    StartReader(socket, reader);
                }
                catch (Exception e)
                {
                    WriteMessageText("Error: " + e.Message + "\n");
                    socket.Dispose();
                }
            }
            catch (Exception e)
            {
                WriteMessageText("Error: " + e.Message + "\n");
                socket.Dispose();
            }
        }
        // Reference socket streams for writing and reading messages.
        private void SendMessage(Windows.Networking.Proximity.ProximityStreamSocket socket)
        {
            // Get the network socket from the proximity connection.
            proximitySocket = socket;

            // Create DataWriter for writing messages to peers.
            dataWriter = new Windows.Storage.Streams.DataWriter(proximitySocket.OutputStream);

            // Listen for messages from peers.
            Windows.Storage.Streams.DataReader dataReader =
                new Windows.Storage.Streams.DataReader(proximitySocket.InputStream);
            StartReader(proximitySocket, dataReader);
        }
        async private void ConnectToPeer(Windows.Networking.Proximity.PeerInformation peerInfo)
        {
            WriteMessageText("Peer found. Connecting to " + peerInfo.DisplayName + "\n");
            try
            {
                Windows.Networking.Proximity.ProximityStreamSocket socket =
                    await Windows.Networking.Proximity.PeerFinder.ConnectAsync(peerInfo);


                WriteMessageText("Connection successful. You may now send messages.\n");
                SendMessage(socket);
            }
            catch (Exception err)
            {
                WriteMessageText("Connection failed: " + err + "\n");
            }
        }