Поясните работу Socket.Recieve - C#

Узнай цену своей работы

Формулировка задачи:

Читаю MSDN
        // Blocks until send returns.
        int i = server.Send(msg);
        Console.WriteLine("Sent {0} bytes.", i);
 
        // Get reply from the server.
        i = server.Receive(bytes);
        Console.WriteLine(Encoding.UTF8.GetString(bytes));
неужели все так просто, послал запрос, получил ответ? То есть на стороне сервера нужно слушать порт, а на стороне клиента как либо ожидать не нужно ответ, server.Receive() и я получу весь набор байтов ответа? А если сервер подвис? Программа (если не использовать асинхронные методы и Socket.ReceiveTimeout) тоже подвиснет, пока сервер не ответит?

Решение задачи: «Поясните работу Socket.Recieve»

textual
Листинг программы
                do
                {
                    bytes = socket.Receive(data, count, data.Length - count, SocketFlags.None);
                    if (bytes == 0) throw new Exception("Connection lost");
                    count += bytes;
                }
                while (count < 10);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5