TcpClient не сбрасывает пишет - PullRequest
0 голосов
/ 03 февраля 2019

У меня есть этот код для отправки String сообщений на сервер.Предполагается, что эти сообщения отправляются отдельно, но Stream из TcpClient отправляет сообщения в одном баге после закрытия Stream.

Что можно сделать, чтобы отправить отдельные сообщения с помощьюэтот код:

public void sendData()
{
    const int PORT_NO = 12900;
    const string SERVER_IP = "127.0.0.1";

    TcpClient client = new TcpClient(SERVER_IP, PORT_NO);
    try
    {
        client.NoDelay = true;
        NetworkStream nwStream = client.GetStream();
        sendText(nwStream, "Text-1"); // Here is it supposed to send "Text-1"
        sendText(nwStream, "Text-2");
        sendText(nwStream, "Text-3");
    }
    finally
    {
        client.Close(); // But, all messages are sent here!
    }
}

private void sendText(NetworkStream nwStream, String text)
{
    byte[] bytesToSend = ASCIIEncoding.ASCII.GetBytes(text);
    nwStream.Write(bytesToSend, 0, bytesToSend.Length);
    nwStream.Flush();            
}

С этим кодом Сервер в итоге получает: Text-1Text-2Text-3 в одном сообщении, и он должен получить 3 разных сообщения.Что здесь не так?

...