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

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

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

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

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

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

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут