Отправить сообщение в приложение сокета UWP из приложения окна формы сокета - PullRequest
0 голосов
/ 24 мая 2019

Я построил сервер сокетов UWP и клиент UWP, который работает.Я пытаюсь передать строку из формы Windows на сервер UWP.Есть ли способ отправить строку так же, как клиент UWP отправляет строку?ниже показано, как UWP отправляет строку и как форма окна отправляет строку.

  //send from win form which results in out of memory error
  private void buttonSendMessage_Click(object sender, EventArgs e)
    {
        try
        {
            string msg = richTextTxMessage.Text;
            //// New code to send strings from windows form to uwp server
            NetworkStream networkStream = new NetworkStream(m_clientSocket);
            System.IO.StreamWriter streamWriter = new 
            System.IO.StreamWriter(networkStream);
            streamWriter.WriteLine(msg);
            streamWriter.Flush();

            //Use the following code to send bytes

            //byte[] byData = System.Text.Encoding.ASCII.GetBytes(msg);
            //if (m_clientSocket != null)
            //{
            //    m_clientSocket.Send(byData);
            //}

        }
        catch (SocketException se)
        {
            MessageBox.Show(se.Message);
        }
    }

// кнопка отправки UWP, которая работает

 private void btnSend_Click(object sender, RoutedEventArgs e)
    {
        _socket.Send(txtMessage.Text);
    }

// отправка клиента UWP:

 public async void Send(string message)
    {
        //Envia o tamanho da string
        _writer.WriteUInt32(_writer.MeasureString(message));
        //Envia a string em si
        _writer.WriteString(message);

        try
        {
            //Faz o Envio da mensagem
            await _writer.StoreAsync();
            //Limpa para o proximo envio de mensagem
            await _writer.FlushAsync();
        }
        catch (Exception ex)
        {
            if (OnError != null)
                OnError(ex.Message);
        }
    }

Это почти работает без ошибок сервера, но полученные данные никогда не выполняются на сервере UWP

public async void Send(string message)
    {
        try
        {
            StreamWriter writer = new StreamWriter(richTextTxMessage.Text);
            //Send the message
            await writer.WriteAsync(message);
            await writer.FlushAsync();
            writer.Close();
        }
        catch (Exception ex)
        {
            Debug.WriteLine(ex.Message);
        }
    }

Возникло исключение: System.OutOfMemoryException в ServerSocket.winmd

...