Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Сети > Winsock и Proxy |
Автор: ScoL 3.4.2008, 23:34 |
Ув. Форумчане кто может подсказать как приконнектиться к прокси и через него послать какие либо данные ? (поиск юзал, ничего подходящего не нашел) |
Автор: Snowy 4.4.2008, 11:48 |
Присоедениться к прокси - так-же, как и к любому другому серверу. А, непосредственно, отправка данных через него зависит от типа прокси и протокола. |
Автор: ScoL 4.4.2008, 16:01 |
просто через connect ? прокси http.... если можно то примерчик как послать данные через http прокси.... ![]() |
Автор: Virtuals 7.4.2008, 07:18 | ||||||||
работа через прокси отличается от обычного HTTP (и не только), все го лиш одной доп. коммандой. исходная: прокси proxy порт 8080 если для прямого соединения вы подключаетесь к forum.vingrad.ru и порту 80 и шлете
то с прокси вы подключаетесь к proxy и порту 8080 шлете
получаете типа
(сдесь главное HTTP/1.0 200 ) а далее как обычно
|
Автор: ScoL 7.4.2008, 15:06 |
Virtuals, спс разобрался ![]() |
Автор: HiVeR 1.4.2009, 14:52 | ||
собсно не получается... постоянно летят Error'ы на recv'е непонятно почему и зачем.. очень редко было всё ок, и на выходе от прокси получал страницу с "400, Bad Request".. но это было всего пару раз.. перепроверил кучу проксей, многие из них 100% рабочие, а мой код их не хочет брать(. думаю изза неправильного запроса.. или неправильного принятия данных, хотя вроде всё верно. вот основная часть кода, выделил самые сомнительные места, hpack - перепробовал кучу самых разных вариантов - и с #13#10#13#10 и без них, совсем по разному писал url - и с http:// и без, и ещё пару вариантов - с http:// ваще ни в какую не шло, а просто если домен - то вроде что-то отправлялось.. кароч жесть путаница), подскажите плз что тут нетак:
в основном пробовал коннектиться к yoip.ru - через проксю в браузере норм коннектилось, а тут Recv Error или пустой результат после долгого ожидания, или просто невозвратное зависание. |
Автор: Matematik 1.4.2009, 16:17 |
Возьми сниффер, забей в браузер проксю и посмотри что и как посылает. Потом попробуй своей программой и сравни. |
Автор: HiVeR 1.4.2009, 17:17 | ||
Matematik, спс за совет, так очевидно - а попробовать ранее чёто в голову не пришло). впринципе обошлось и без этого), просто всё проще:
вот такого вида запрос у индейцев, работает ![]() способ, описанный Virtuals в 4ом посте, тоже вроде работает, но наверно чего-то не хватает.. |
Автор: KeeRush 7.4.2009, 21:04 |
Доброго времени суток. А как быть в том случае если протокол отличен от HTTP? Ситуация: сервер получает данные с приборов по TCP. Для этого создаю слушающий сокет и когда приходит пакет от прибора то уже устанавливаю соединение с ним по новому сокету. А что делать если нужно работать через прокси? |
Автор: Virtuals 8.4.2009, 05:41 | ||
KeeRush слушать через прокси никак, а вот устанавливать соединение влегкую.
главное чтоб твой прокси несопротивлялся. ![]() ЗЫ я так с почтой работаю по POP3 $) |
Автор: KeeRush 8.4.2009, 05:49 |
Virtuals, В том то и проблема что соединение инициируют приборы. Сервер лишь создает слушающий сокет и ждет. |
Автор: Virtuals 8.4.2009, 12:34 |
KeeRushтогда увы... слушающий сокет должен быть в одное сети с прибором, без никаких проксей. озвуч задачу подробней... приложение сам пишеш? где приборы и где нужно инфу получать? |
Автор: KeeRush 8.4.2009, 12:50 |
Да приложение пишу сам. Сервер оформлен в виде сервиса WinNT. Приборы выходят в инет по GPRS и стучат на определенный ИП по определенному порту. Сервер соответственно обменивается с приборами информацией по внутреннему протоколу и обрабатывает ее. Заказчик выдвигает требование чтобы система работала за прокси. FreeCap и иже с ними не приветствуются. Как то так ![]() |
Автор: Virtuals 8.4.2009, 13:22 |
KeeRush, в любом соединении сетевом. ХОТЯБЫ 1 из двоих обязан иметь белый IP. или если за NATом то проброс портов. другого не дано!!! так что может не прокси а всетаки нат или фаер перед сервером.? |
Автор: KeeRush 8.4.2009, 15:16 |
Virtuals, Немного не понимаю при чем тут фаер. Думаю возникло некоторое непонимание ![]() На данный момент система работает. Сервер имеет "белый" ИП. Приборы при выходе на связь получают свои динамические "белые" ипы (насколко я знаю ни один из GSM операторов не предоставляет статические ИПы). Но другой заказчик находится на территории режимного объекта и выход в инет имеет только через прокси сервер доступа к администрированию которого нет никакого. Таким образом НАТ не проходит. Я так понял что задача классическими методами не решаема. Но все равно спасибо за помощь! ![]() |
Автор: Virtuals 8.4.2009, 16:12 |
KeeRush, ну во первых гсм операторы чаще дают не белый ип а за NATом. ![]() ... вот теперь ситуация проясняется. заказчику нужно обязательно реал-тайм управление? или достаточно просто инфу мониторить? |
Автор: KeeRush 11.4.2009, 16:12 |
Не понял вопроса ![]() может быть еще прояснить ситуацию? ![]() Приборы - GPS треккеры которые по GPRS передают информацию на сервер. Для передачи информации они устанавливают коннект с сервером. Соединение с сервером живет до тех пор пока прибору есть что передавать или пока не оборвется GSM сигнал. С нашими настройками прибору всегда есть что передавать таким образом соединение живет достаточно долго. Одновременно на связи может находится несколько десятков приборов. Прибору указывается на какой ИП стучать и по какому порту. Ну а что добавить про сервер я уже не знаю ![]() |
Автор: Virtuals 13.4.2009, 05:32 |
KeeRush, дык вот теперь понятно. ![]() так зачем изобретать велосипед? сервер обязан иметь белый (или НАТ но с проброшеными портами) инет. отсюда, самое простое, и кстати самое надежное! внешний хостинг, с потдержкой пхп и мускула. //все а далее дело техники .трекеры стучатся на вэб сервер, передают свой ид и другую инфу... .пхп скрипт все пишет в мускульную базу данных. . все кому нужно забирают данные черех вэб морду (вот тут есть где фантазии развернутся ![]() несомненные плюсы. данной схемы. .вам пофиг какой у клиента инет, хоть через мобилу пусть выходят, проект универсален для всех. .внешний хостинг, /в большинстве случаев/ реально имеет более "толстые" и самое главное более надежные каналы в инет. (что повысит надежность системы в целом) ЗЫ извиняюсь за офтоп. ![]() . и если вам так захочется "подоить заказчика на бабки" (а так кстати большинство и поступают, в данном напр. услуг) то хостинг открываете вы на себя, а клиенту даете только реквизиты входа для трекеров и клиентов мониторинга. (и доите, доите клиента (точнее не клиента, а много, очень много клиентов, т.к. на одном хостинге можете иметь кучу баз данных) ежемесячно, за т.н. техническую потдержку системы) //способ некрасивый, но бизнес есть бизнес, а заказчику просто неоткрывается вся поднаготная сервиса. (деньги заплатил, получил список ид для треккеров, и реквизиты входа для сьема данных) |
Автор: KeeRush 13.4.2009, 05:47 |
И вправду ушли от темы ![]() К сожалению по ряду причин предложенная схема не подходит :( |
Автор: Virtuals 14.4.2009, 04:55 |
KeeRush, увы другого недано, так что решай свой ряд причин. |