none
Прием сообщений от сервера .Net RRS feed

  • Вопрос

  • Имеется серверное приложение, которое посылает сообщение клиенту следующим образом: 

                    await client.GetStream().WriteAsync(dataSend, 0, dataSend.Length); 

    Клиент его обрабатывает следующим образом:

                TcpClient client = new TcpClient("192.168.0.2", 8080);            
                string Str = "154.0.8.145 175RK67T2F lazarev 123456 getlastfact 29006";
                byte[] Buffer = Encoding.ASCII.GetBytes(Str);
                byte[] recBuffer = new byte[client.ReceiveBufferSize];
                client.SendBufferSize = 4096;
                client.GetStream().Write(Buffer, 0, Buffer.Length);
                if(client.GetStream().DataAvailable)
                {
                    client.GetStream().Read(recBuffer, 0, recBuffer.Length);
                    Console.WriteLine(Encoding.ASCII.GetString(recBuffer));
                }
                client.Close();
    Проблема в том, что при нормальной работе программы клиент не получает сообщение, но если воспользоваться debuger'ом, то сообщение доходит, в чем проблема? Думаю она где-то в этой строчке:
                if(client.GetStream().DataAvailable)



    • Изменено vladar107 19 ноября 2014 г. 13:09
    19 ноября 2014 г. 13:09

Ответы

  • Конечно. :)
    Вы в дебаге просто медленнее до неё доходите, так что данные успевают долететь. 
    Посмотрите, как читают в примере из документации: сперва Read().
    • Помечено в качестве ответа vladar107 20 ноября 2014 г. 5:10
    19 ноября 2014 г. 15:21