Поясните работу 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);

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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