![]() |
|
Модераторы: gambit |
![]()
|
|
| Softaz |
|
|||
![]() wasm ![]() ![]() Профиль Группа: Участник Сообщений: 373 Регистрация: 16.1.2006 Репутация: нет Всего: 16 |
Пишу программку наподобие баннероезки. Надо каким-либо образом органищовать перехват соединения.
Это легче всего сделать с помощью прокси-сервера. Хотя можно и через сетевой драйвер (но надо ли). Никак не могу добится устойчивой работы прокси. Пример взят отсюда: http://www.c-sharpcorner.com//internet/web_proxy.asp Немного переделан (изменил кодировку, в TcpListener определил локальный адрес и т.д.). В принципе проксюшка работает, но очень медленно. К тому же открывает не каждый сайт и не каждую страницу Есть ли в .NET какие-либо способы перехвата и что не так в проксюшке? Код приведен ниже. Заранее спасибо.
-------------------- Разочарованный в .NET |
|||
|
||||
| vinegr |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 6.2.2006 Репутация: 1 Всего: 3 |
исходный пример на редкость дебилен:
- зачем-то ждет, пока в strRetPage накопится вся страница, вместо того, чтобы отдавать кусками по мере получения. - блокирующий Receive возвращает 0 как число принятых байт, фактически, по таймауту сокета - в данном примере этот таймаут ожидается на каждом запросе. - совершенно необязательно открывать/закрывать коннектшн для каждого запроса - в реальной жизни через открытое соединение проходит куча запросов к серверу (и, соответственно, ответов). Если делать по-простому, после установления коннекта с требуемым сервером нужно запустить две нити "навстречу друг-другу" - одна перекладывает байты с клиента(браузера) на сервер, другая - с сервера на клиент (если баннерорезка анализирует НТМЛ - тут то она и должна работать). - на каждый запрос создавать экземпляр класса-обработчика - уж больно жирно - надо бы сгородить какой-нить пул обработчиков и использовать их экземпляры повторно. В каждый момент времени браузер держит открытыми только два НТТР-соединения (если по стандарту) - т.е. пул обработчиков будет совсем небольшим и совсем просто управляемым. - режет глаза преобразование из байтов в строки и обратно и вообще стиль написания. я бы посоветовал поискать более продвинутый пример, этот дорабатывать себе дороже |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Распределённые приложения и сеть | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |