Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Распределённые приложения и сеть > TcpClient & WebClient


Автор: Sartorius 4.8.2006, 09:53
 Пытаюсь с помощью TcpClient создать соединение на 80 - й порт с HTTP сервером. TcpClient долго пытается это сделать (client.Connect("www.vingrad.ru", 80)) потом вылетает с исключением. C WebClient-ом нет проблем. Почему так? Кто нибудь знает?

Автор: papaP 4.8.2006, 09:58
может у тебя прокся стоит?
напиши, что за ексепшон

Автор: Sartorius 4.8.2006, 10:38
Цитата(papaP @ 4.8.2006,  09:58)
может у тебя прокся стоит?
напиши, что за ексепшон

 SocketException по таймауту во время соединения. А че делать если прокси стоит? Никогда с сетью не работал  smile 

ЗЫ
Попробовал к прокси-серверу обратиться, он сразу соединение разрывает

Автор: Snowy 4.8.2006, 10:48
Иссесно. Если стоит прокси, то нужно работает по его правилам.
Если никогда с сетью не работал, то зачем пытаешься работать с http вручную?
Юзай TIdHTTP.

Автор: papaP 4.8.2006, 11:17
На чем пишешь и в чем задача, я тебе пару примеров кину

Автор: Sartorius 4.8.2006, 11:18
Цитата(Snowy @ 4.8.2006,  10:48)
Иссесно. Если стоит прокси, то нужно работает по его правилам.
Если никогда с сетью не работал, то зачем пытаешься работать с http вручную?
Юзай TIdHTTP.

 Простите за балаган, прокси отвечает, я не на тот порт подключался. 
TIdHTTP - эта где?В MSDN не нашел.
И такой еще вопрос : как мне подключиться к не HTTP сервисам на серверах с внешними IP. Тоже через proxy? Хоцца понять , как мона создать TCP соединение внешним серверо...

Автор: papaP 4.8.2006, 11:48
> Простите за балаган, прокси отвечает, я не на тот порт подключался. 
Конечно! не на тот )), тебе сначала надо установить соединение с проксей, а потом уже(через проксю) коннектится куда надо, вот не большой пример, используя httpwebrequest:
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322; .NET CLR 2.0.40607)";
            req.CookieContainer = cooks;
            WebProxy myProxy=new WebProxy(proxyHost,proxyPort);
            req.Proxy = myProxy;
            // отправляем запрос, получаем ответ
            string _response;
            try
            {

                using (System.IO.Stream resst = ((HttpWebResponse)req.GetResponse()).GetResponseStream()) 
                {
                    _response = new StreamReader(resst, Encoding.GetEncoding(1251)).ReadToEnd();
                }
            }
            catch(Exception ex)
            {
                _response = ex.ToString();
            }

Автор: Sartorius 4.8.2006, 12:15
 Спасибо, вроде начинаю въезжать smile 

Автор: mr.DUDA 4.8.2006, 16:29
papaP, для оформления кода пользуйтесь кнопкой "Код", что над формой ответа. Для цитат тоже есть кнопка.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)