Автоматический upload данных по Internet

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
leonid
Частый Гость
Сообщения: 26
Зарегистрирован: 21 фев 2003, 11:42
Откуда: Toronto

Сообщение leonid »

SS писал(а):[trn]Nazad k nashim baranam: dlya tvoej situacii ya by rekomendoval tebe slepit' sistemu iz klienta (rekomenduyu libo [/trn]PERL[trn] libo [/trn]Java[trn]) kotoryj budet vyzyvat'sya planirovshikom vindovsa skazhem kazhdyj chas na storone kastomera, i servera (u vas) kotoryj budet prinimat' infu ot klientov i skazhem lit' ee v bazu (mozhno i cherez [/trn]ASP[trn]). Estestvenno, rekomenduyu pol'zovat' [/trn]HTTP! [trn] [/trn]:lol:

[trn]Esli interesno, mogu nabrosat' primernyj kod dlya otpravki dannyh po HTTP, skazhem na [/trn]PERL.
Да, я уже понял, что HTTP рулёз :)
От кода не откажусь никогда. Правда Java интересует больше чем PERL, а .Net интересует больше чем Java.
Но в этом всем меня интересует не столько предача данных на сервер черз HTTP, а как наиболее универсальным образом проходить через proxy, HTTP-poxy, т.е. как сделать то, что ты описываешь в нижеприведенной цитате, но из кода. vg поделился подобным кодом для обычных сокетов.

Как делать это в WinHTTP я немножко почитал здесь http://msdn.microsoft.com/library/defau ... inhttp.asp
Очень интересно как это же сделать при использовании .Net Web Sevices.
SS писал(а):Да, это так. Только согласно RFC, клиент обязан сначала дать команду CONNECT или BIND для UDP (и в этой команде указывается адрес куда клиент хочет поиметь собственно коннект). И только после этого можно передавать сам запрос (в отличие от хттп-прокси, который сам высасывает адрес хоста из этого самого запроса)
Аватара пользователя
Lepsik
Житель
Сообщения: 522
Зарегистрирован: 17 фев 2003, 18:34
Откуда: Berlin
Контактная информация:

Сообщение Lepsik »

--Я в начале когда увидел, чуть не воскликнул "Эврика". Но вот про поддержку proxy/SOCKS они там ничего не пишут.


ну до чего народ ленивый. Я что ли все остальные ссылки должен проверять. Не нравится это - берешь другую по ссылке. То что там есть с настройками на прокси - несколько вижу даже при беглом просмотре. А если и стоит 30 баксов - ну всяко дешевле, чем убить несколько дней на заведомо сизиф труд. Или вам надо деньги освоить ?


В крайнем случае возьми ICQ SDK уж методов работы через все возможные виды проксей и файерволов - тонны всего придумано.
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

2SS,
vg:
Другими словами для хттп сделано всё автоматически. Там не нужен SOCKS. Почему так делает MS? (отдельно хттп. а для всего остального или их клиент, или socks)

Все гораздо проше, так делают все. И это тоже было прописано в RFC (смотри тот что описывает HTTP 1.1). Кстати, пожалуй САМЫЙ популярный хттп прокси в и-нете SQUID делает то же самое, топлько по умолчанию там порт 3128. Согласно этому самому RFC, клиентская аппликуха коннектится к прокси на указанный порт, и дает обычный хттп запрос, который передается веб-сайту без изменения.
Мне казалось я об этом упорно и постил. :D (для хттп-прокси) Но у тебя получилось пропостить проще :D Не спорю.
vg:
ПС. SOCKS - это только стандартизированный rfc способ обмена между клиентом в локальной сети и прокси-сервером.

Да, это так. Только согласно RFC, клиент обязан сначала дать команду CONNECT или BIND для UDP (и в этой команде указывается адрес куда клиент хочет поиметь собственно коннект). И только после этого можно передавать сам запрос (в отличие от хттп-прокси, который сам высасывает адрес хоста из этого самого запроса)
Ну, да. Но SOCKS 4 не поддерживает UDP. UDP Поддерживает SOCKS 5.
В принципе leonid-у это (про SOCKS) вообще всё не надо, т.к. он уже сориентировался, думаю, на хттп.
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

2Lepsik,
--Я в начале когда увидел, чуть не воскликнул "Эврика". Но вот про поддержку proxy/SOCKS они там ничего не пишут.

ну до чего народ ленивый. Я что ли все остальные ссылки должен проверять. Не нравится это - берешь другую по ссылке. То что там есть с настройками на прокси - несколько вижу даже при беглом просмотре. А если и стоит 30 баксов - ну всяко дешевле, чем убить несколько дней на заведомо сизиф труд. Или вам надо деньги освоить ?
несколько дней - ты смеёшься? копи/паст из тех проектов, что уже есть. А ессли нет проектов, то тем более полезно потратить "...несколько дней..." (больше не понабодится). А может он вообще в Borland-e пишет. Так, там всё "рисуется", а не пишется. Кому, как не тебе это знать? (это не наезд, у указание на тебя как на самого знающего программирование в ВСВ++)
В крайнем случае возьми ICQ SDK уж методов работы через все возможные виды проксей и файерволов - тонны всего придумано.
Лепсик, я тебя, конечно, уважаю. Но иногда ты такие вещи говоришь...
Достаточно, rfc посмотреть. Кстати есть и на русском (не очень хорошие переводы). Да и примеры, как работать с сокс пропостили. Их больше, чем достаточно для того, чтобы сделать работающую клиентскую программу для любого сокс-прокси. И все пришли вообще к одному и тому же мнению, что не нужет leonid-y SOCKS, ибо будет делать по хттп.
Аватара пользователя
папа Карло
Шарманщик
Сообщения: 8563
Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA

Сообщение папа Карло »

не слабо вы тут флеймите :) хахахаа
Аватара пользователя
Marmot
Графоман
Сообщения: 38347
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Canyon Heights
Контактная информация:

Сообщение Marmot »

папа Карло писал(а):не слабо вы тут флеймите :) хахахаа
Присоединяйся... :lol:
Аватара пользователя
папа Карло
Шарманщик
Сообщения: 8563
Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA

Сообщение папа Карло »

Marmot писал(а):
папа Карло писал(а):не слабо вы тут флеймите :) хахахаа
Присоединяйся... :lol:
я свое мнение уже сказал. пинаем по хттп протоколу сервак.... или что еще более прозрачное с точки зрения безопасности посылаем емыл шифрованый ПГП... что то, что другое делается достаточно быстро. в случае нттп может быть гимор у некоторых клиентов если админы криворуки.... но шанс очень мал. по мылу не всегда здоровый аттачмент пролезет, надо думать. я бы сделал хттп по быстрому и не ломал бы голову короче. :)
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

2Папа,
не слабо вы тут флеймите хахахаа
Ну.... ты тут ... того.... этого..... :evil: Мы ту парню программу написать помогаеv. Аутсорсинг называется. Слыхал про такое? :D :D :D

ПС. Кстати, код давай, а? :twisted:
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

Папа, ты код дай. :!: Даже я, недоучка, тебе на С# помогал.
:D Помнишь про комбобокс, чи лист вью-невью? :D
Аватара пользователя
папа Карло
Шарманщик
Сообщения: 8563
Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA

Сообщение папа Карло »

vg писал(а):Папа, ты код дай. :!: Даже я, недоучка, тебе на С# помогал.
:D Помнишь про комбобокс, чи лист вью-невью? :D
вы чего совсем нюх потеряли. 1. я не программист. 2. создаем ком-объект от интеренет эксплорера или чего там и шлем пост запрос. все. кошмар....
SS
Частый Гость
Сообщения: 13
Зарегистрирован: 25 фев 2004, 20:47

Сообщение SS »

leonid писал(а):Правда Java интересует больше чем PERL, а .Net интересует больше чем Java.
Но в этом всем меня интересует не столько предача данных на сервер черз HTTP, а как наиболее универсальным образом проходить через proxy, HTTP-poxy, т.е. как сделать то, что ты описываешь в нижеприведенной цитате, но из кода. vg поделился подобным кодом для обычных сокетов.
[trn]Poslushaj moego soveta: ne trogaj fekalii poka ne vonyayut! Zachem tebe nuzhny resheniya na [/trn].NET? [trn]Gemorroya i rugani v tvoj adres zahotelos'?

Teper' ob`yasnyu pochemu: [/trn]
  • .NET [trn]i [/trn]Java [trn]resheniya trebuyut vse zhe taki nekotorogo administririvaniya (znayu t.k. sam zayadlyj Yava programmer), a perlu nuzhno tol'ko nalichiya sebya v [/trn]%PATH%
  • [trn]Pri rabote applikuh sdelannyh na [/trn]Java [trn]i [/trn].NET [trn]mashina budet poprostu zamorozhena poka vse ne otrabotaet (ya uzhe ne govoryu kakj koshmar tvoritsya pri zapuske!)[/trn]
  • [trn]Ukazannye toboj yazyki ne chen' udobny dlya obraborki neskol'ko bol'shih ob`emov teksta (a perl dlya wtogo i byl priduman), pri wtom reshenie na perle mozhet peredavat' ne ves' log, a tol'ko svezhuyu ego chast', pri wtom mozhesh' popol'zovat' ego standartnuyu "bazu" dlya otslezhivaniya izmenenij[/trn]
[trn]Ubeditel'no?[/trn] :)

PS: [trn]nad kodom ya eshe rabotayu.[/trn] :lol:
Аватара пользователя
Marmot
Графоман
Сообщения: 38347
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Canyon Heights
Контактная информация:

Сообщение Marmot »

SS писал(а):[trn]Pri rabote applikuh sdelannyh na [/trn]Java [trn]i [/trn].NET [trn]mashina budet poprostu zamorozhena poka vse ne otrabotaet (ya uzhe ne govoryu kakj koshmar tvoritsya pri zapuske!)[/trn]
Вот только не надо грязи :-),
я за наезды на Java порву на части... :twisted:
Хотя в данном случе Perl выглядит предпочтительней... :wink:
SS
Частый Гость
Сообщения: 13
Зарегистрирован: 25 фев 2004, 20:47

Сообщение SS »

Marmot писал(а):Вот только не надо грязи :-), я за наезды на Java порву на части... :twisted:
[trn]Ya tozhe obozhayu [/trn]Java[trn] i sam pishu v osnovnom na nej , no nado byt' realistom. Smeshno palit' iz pushki po muham![/trn] :lol:
Аватара пользователя
ajkj3em
Маньяк
Сообщения: 2063
Зарегистрирован: 12 ноя 2006, 06:53

Сообщение ajkj3em »

Marmot писал(а): Вот только не надо грязи :-),
я за наезды на Java порву на части... :twisted:
...
гы гы гы ..
"ну ты меня, мужик, понял" :)
SS
Частый Гость
Сообщения: 13
Зарегистрирован: 25 фев 2004, 20:47

Сообщение SS »

leonid,

[trn]Primerno vot tak budet vyglyadet' prohod cherez proksi na perle:[/trn]

Код: Выделить всё

#!/usr/bin/perl -w
use strict;
use Socket;

my $log_data = "2/27/2004 06:28:12 User logged in.";
send_report("http://www.mycompany.com/customers/report.asp", $log_data, "proxy.mycompany.com");

sub send_report($$$)	# this is equal to c-style declration: int sendreport(char* host, char* string_to_send, char* proxy)
{
 my $iaddrgethostbyname();
 my $host;
 if(defined($_[2]))
  $host = gethostbyname($_[2]);
 else
  $host = gethostbyname($_[0]);
 my $hisiaddr = inet_aton($host) || die "unknown host\n";
 my $hispaddr = sockaddr_in($port, $hisiaddr);
 my $proto = getprotobyname('tcp');
 my $port = getservbyname('http', 'tcp');
 my $paddr = sockaddr_in(0, $iaddr);

 socket(SOCKET, PF_INET, SOCK_STREAM, $proto) || die "socket: $!";
 connect(SOCKET, $hispaddr) || die "bind: $!";

 print $SOCKET "POST "; print $SOCKET $_[0];
 print $SOCKET "\nContent-Type: application/x-www-form-urlencoded\n\n";
 print $SOCKET "log_update="; print $SOCKET $_[1];

 close(SOCKET);
}
PS: [trn] tol'ko uchti, nado popravit' eshe i port na proksi! No smysl ya dumayu tebe budet ponyaten.[/trn] :D
Ответить