Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с System.Net, Не передаются данные с интернета 
:(
    Опции темы
Stalnoj
Дата 20.10.2004, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 20.10.2004

Репутация: нет
Всего: 2



Вот код программы, кот. должна производить запрос к URI страничке. И загружать ее на компьютер. Но, как можно было уже догадаться, она не работает. Программа посылает запрос на сайт и на этом все заканчивается - ничего не происходит, данные не передаются, а через некоторое время происходит timeout соединения.

Код программы взят целиком из книги Герберта Шилдта "Полный справочник по C#" (изменены только комментарии).

У меня Visual Studio 2002. Вот собственно код:

Код
using System;
using System.Net;
using System.IO;

class NetDemo
{
public static void Main()
{
 int ch;

 try
 {
  // at first create request on URL-adress
  HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.osborne.com");

  // next send this request & get response
  HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

  // get back-end stream from response
  Stream istrm = resp.GetResponseStream();

  // output text from stream on screen (in symbols of forty)
  for (int i = 1;; i ++)
  {
   ch = istrm.ReadByte();
   if (ch == -1) break;

   Console.Write((char) ch);
   if ((i % 400) == 0)
   {
    Console.Write("\nPress any key.");
    Console.Read();
   }
  }

  // close stream.
  resp.Close();
 }
 catch(WebException exc)
 {
  Console.WriteLine("Network error: " + exc.Message + "\nState code: " + exc.Status);
 }
 catch(ProtocolViolationException exc)
 {
  Console.WriteLine("Protocol error: " + exc.Message);
 }
 catch(UriFormatException exc)
 {
  Console.WriteLine("Format URI error: " + exc.Message);
 }
 catch(NotSupportedException exc)
 {
  Console.WriteLine("Unknown protocol: " + exc.Message);
 }
 catch(IOException exc)
 {
  Console.WriteLine("I/O error: " + exc.Message);
 }
}
}


В общем, программа останавливается на HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); - когда должна получить ответ от сервера.

Даже фаервол пробовал отключать... - бестолку.

Подскажите что-нибудь?
PM MAIL   Вверх
Mad
Дата 20.10.2004, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

Репутация: 1
Всего: 19



Что значит останавливается ?
Просто ничего не делает - тогда она просто ждет ответ сервера :)
Если выбрасывает ошибку, то какую ?


--------------------
user posted image
PM MAIL   Вверх
Stalnoj
Дата 21.10.2004, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 20.10.2004

Репутация: нет
Всего: 2



Да, она просто ждет ответа от севера. И ждет и ждет... (Без разницы, какой указать URI)

А ошибку через несколько минут выбрасывает следующую:
Network error: The operation has time-out.
State code: Timeout
PM MAIL   Вверх
Vaulter
Дата 21.10.2004, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 3
Всего: 22



значит не доходит до сервера.
вот такой коду меня работает уже в программе, введенной в экплуатацию ;) :
Код

HttpWebRequest HttpWReq =
   (HttpWebRequest)WebRequest.Create("http://172.16.5.9/news/account.cgi?adr="+ip);
  if(((frmMain)gpbParent.Parent).AppSettings.GetValue("useieproxy").ToString()=="no")
  {
   HttpWReq.Proxy=GlobalProxySelection.GetEmptyWebProxy();
  }
  HttpWReq.Timeout=5000;//5 second
  try
  {
   HttpWebResponse HttpWResp = (HttpWebResponse)HttpWReq.GetResponse();
   // Insert code that uses the response object.
   Stream rStream=HttpWResp.GetResponseStream();
   Encoding encode = System.Text.Encoding.GetEncoding("windows-1251");
   // Pipes the stream to a higher level stream reader with the required encoding format.
   StreamReader readStream = new StreamReader( rStream, encode );

   string answer="";
   char[] read = new char[2560];
   int count = readStream.Read(read, 0, 2560 );
   //lblStat.Text+=read;
   while (count > 0)
   {
    string str = new String(read,0,count);
    answer+=str;
    count = readStream.Read(read, 0, 2560);
   }
   readStream.Close();
   HttpWResp.Close();
   //got answer, now parse it!
///////////////////////////////////////////////////////////////////
// your code here - in answer - string that got from URI
///////////////////////////////////////////////////////////////////
  }
  catch(Exception E)
  {
   //MessageBox.Show(E.Message,E.GetType().FullName);
   lblIngoing.Text=lblOutgoing.Text=E.Message;
   lblIngoing.ForeColor=lblOutgoing.ForeColor=System.Drawing.Color.Red;
   outgoing=ingoing=-1;//all is red

  }





--------------------
PM MAIL WWW ICQ   Вверх
Stalnoj
Дата 21.10.2004, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 20.10.2004

Репутация: нет
Всего: 2



Хм... Бред какой-то! Все равно выдает "The operation has timed-out"
Из-за чего это вообще может быть?

Это сообщение отредактировал(а) Stalnoj - 21.10.2004, 15:38
PM MAIL   Вверх
stab
Дата 21.10.2004, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



Похоже что проблема на сервере, что за сервер?


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Mad
Дата 21.10.2004, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

Репутация: 1
Всего: 19



Stalnoj
Может у тебя прокси неправильно настроен (если есть)


--------------------
user posted image
PM MAIL   Вверх
Vaulter
Дата 22.10.2004, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 3
Всего: 22



Stalnoj
ты пинговать то пробовал?
telnet ом на 80 порт подолбись...


--------------------
PM MAIL WWW ICQ   Вверх
Stalnoj
Дата 22.10.2004, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 20.10.2004

Репутация: нет
Всего: 2



cully
В смысле сервер? Сервер, которому я соединяюсь? Ну, так пробовал ко многим сайтам.
А если у меня на компьютере. Дык у меня инет диалап, Windows XP SP2 (правда не релиз сервис пака). Или нужно, чтобы был установлен IIS?

Mad
Прокси у меня нету. (Диалап ведь) Есть фаевол, но я его отключал. Не помогает. Может проблема с KAV? Попробую отключить его....

Vaulter
Хм.. Кого пинговать? Сервак, к корому я коннекчусь? Я же написал, что ко многим сайтам пытался. Пытался и к майл.ру (194.67.57.26), уж он точно пингуется... Или я чего-то не понимаю?
PM MAIL   Вверх
stab
Дата 22.10.2004, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



Цитата
Или нужно, чтобы был установлен IIS?

Не нужно. Что делать даже не знаю...


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Vaulter
Дата 22.10.2004, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 3
Всего: 22



Stalnoj
в коммандной строке набери:
ping osborne.com


--------------------
PM MAIL WWW ICQ   Вверх
Stalnoj
Дата 24.10.2004, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 20.10.2004

Репутация: нет
Всего: 2



набрал, osborne.com не пингуется... Но я же не только на нем пробовал, mail.ru, наример, и многое другое.. пингуется, ответ возвращается...
PM MAIL   Вверх
Kurt
Дата 24.10.2004, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 20
Всего: 36



Цитата
набрал, osborne.com не пингуется..

Ну, если не пингуется, что ж ты к нему коннектишься?
Попробуй поработать с другим сервером, скажем, тот же mail.ru.
Кстати, ты, может, описку сделал?
Там, случаем, не "osbourne.com"? Он пингуется. :)


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Tomcat
Дата 26.10.2004, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 4.4.2003
Где: Гродно, Беларусь

Репутация: 2
Всего: 2



Цитата(Stalnoj @ 24.10.2004, 14:58)
набрал, osborne.com не пингуется... Но я же не только на нем пробовал, mail.ru, наример, и многое другое.. пингуется, ответ возвращается...

Попробуй поставить у себя какой-нить HTTP-сервер (тот же IIS пойдет), попробуй свой код на localhost. Если заработает, то у тебя какая-то проблема с конектом на удаленные машины...

Это сообщение отредактировал(а) Tomcat - 26.10.2004, 16:16
PM MAIL   Вверх
Stalnoj
Дата 26.10.2004, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 20.10.2004

Репутация: нет
Всего: 2



Kurt
Ну, ты чего? Я же написал, что пробовал уже и с mail.ru, и со многими другими серверами (и не раз писал).


Tomcat
Угу, спасибо, попробую... У меня установлен Apache.

Это сообщение отредактировал(а) Stalnoj - 26.10.2004, 17:06
PM MAIL   Вверх
Kurt
Дата 27.10.2004, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 20
Всего: 36



Цитата
Ну, ты чего?

Извиняй, это, наверное, у меня башню снесло - я не правильно тебя понял. :)


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
mr.DUDA
Дата 28.10.2004, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Я протестил твою прогу, даже после успешного получения страницы с www.yahoo.com, прога пытается читать дальше ! Вплоть до тайм-аута. То есть, тебе просто нужно вставить оператор break в скобку где размещены

Console.Write("\nPress any key.");
Console.Read();

и всё.



--------------------
user posted image
PM MAIL WWW   Вверх
Stalnoj
Дата 1.11.2004, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 20.10.2004

Репутация: нет
Всего: 2



mr.DUDA
Проблема не в том, что прога дальше продолжает качает. Она вообще не качает! Никакого соединения =(((
Запрос посылается, а ответ не возвращается. Вот.
PM MAIL   Вверх
Vaulter
Дата 2.11.2004, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 3
Всего: 22



Stalnoj
это проблема у тебя. с сервером все в порядке
настрой сеть!


--------------------
PM MAIL WWW ICQ   Вверх
Tomcat
Дата 2.11.2004, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 4.4.2003
Где: Гродно, Беларусь

Репутация: 2
Всего: 2



Stalnoj
Мож с DNS какая беда приключилась?
Попробуй напрямую через IP адрес.
Еще можешь попробовать зарезолвить адрес строчкой:
Код

IPHostEntry hostInfo = Dns.GetHostByName("mail.ru");

Чего он ответит?
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0613 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.