У меня тут лажа я использую Socket и метод Receive но он у меня почему иногда зависает. на строке recv = s.Receive(buffer); просто заходит туда и все дальше не идет, и только через не понятное количество времени начинает работать дальше или вылетает. Code: int recv = 0; byte[] buffer = new byte[1024]; recv = s.Receive(buffer); while (recv > 0) { logi += Encoding.UTF8.GetString(buffer, 0, recv); recv = s.Receive(buffer); }
ага значит или берем размер, или если нет размера циклом? попробовал я циклом, кажется тоже зависает. а сейчас произошла ещё одна лажа, я достал размер, но не страница не вернулась, но метод прошел.
Апну тему, такая же трабла как и у ТС.При: виснет на recv = s.Receive(buffer); (при втором проходе по циклу).Вроде все варианты попробовал... P.S И да, виснет он вроде в самом конце, когда страница уже полностью дочитана.Также хотел бы узнать, подоздёт ли такой вариант:
Ты закачиваешь странницу из инета по протоколу HTTP? Если да, то в отправляемых тобой заголовках должно присутствовать поле Code: Connection: close
Тебе надо как-то byte[] перевести в Stream а потом воспользоваться http://msdn.microsoft.com/ru-ru/library/3z72378a.aspx массив байтов в Stream например так: PHP: byte[] myByte = new byte[10]; MemoryStream theMemStream = new MemoryStream(myByte, 0, myByte.Length); Или вообще не посылать Accept-Encoding: gzip,deflate но этот вариант не Ъ