Поясните работу Socket.Recieve - C#
Формулировка задачи:
Читаю MSDN
неужели все так просто, послал запрос, получил ответ? То есть на стороне сервера нужно слушать порт, а на стороне клиента как либо ожидать не нужно ответ, server.Receive() и я получу весь набор байтов ответа? А если сервер подвис? Программа (если не использовать асинхронные методы и Socket.ReceiveTimeout) тоже подвиснет, пока сервер не ответит?
// 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));Решение задачи: «Поясните работу 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);