Я построил сервер сокетов 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