forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   сайты о java/исходники/статьи. (http://forum.boolean.name/showthread.php?t=8663)

abcdef 14.07.2009 10:54

сайты о java/исходники/статьи.
 
Вложений: 1
Предлагаю складывать сюда описание и ссылки на интересные сайты о программировании в java.
_____
http://waper.ru/forum/56 - форум о java программировании, много всего...
http://waper.ru/forum/26 - форум с java играми.
_____
Специально для подобных сайтов написал delphi-программку автоматизированной загрузки в командной строке с возможностью работы через proxy-server.
Это позволяет создавать bat-файлы для закачки всевозможных страниц из диапазонов, например
www.site.ru/page1.thm
www.site.ru/page2.thm
www.site.ru/page3.thm
и т.д.
Существующие программки например "TeleportPro" имеют несколько другую специфику..
_____
исходный код GETHTTP:
Код:

{$APPTYPE CONSOLE}  { $R ICO.RES}
{Загрузка html-страниц через proxy из коммандной строки}
uses Windows, WinSock;
var
  proxyhost,host,page,s : string;
  proxyport,i,len : integer;

function loadToFile(const proxyhost : string;  proxyport : integer; const host, page, filename : string) : integer;
//сохранить сетевой ресурс на жесткий диск
//если работа не через proxy, то "proxyhost" должен быть равен "host", а "proxyport" - порту сервера, т.е. для http - "80"
var
  sock    : TSocket;
  wData  : WSADATA;
  addr    : sockaddr_in;
  phe    : PHostEnt;
  inAddr  : u_long;
  buf    : array [0..10240-1] of char;
  count,n : integer;
  s      : string;
  f      : file;
begin
  result := 0;
  //Инициализация сокета
  WSAStartup($0101, wData);
  // Определяем, что ввел пользователь имя хоста или его адрес
  inAddr := inet_addr(pchar(proxyhost));
  if inAddr = INADDR_NONE then
  begin
    phe := gethostbyname(pchar(proxyhost));
    if not Assigned(phe) then
    begin
      WSACleanup;
      Exit;
    end;
    inAddr := PInAddr(phe.h_addr_list^)^.s_addr;
  end;
  sock := socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  if sock = INVALID_SOCKET then
  begin
    WSACleanup;
    Exit;
  end;
  addr.sin_family := AF_INET;
  addr.sin_port  := htons(proxyport{80});
  addr.sin_addr.s_addr := InAddr;
  n := connect(sock, addr, sizeof(addr));
  if n = SOCKET_ERROR then
  begin
    closesocket(sock);
    WSACleanup;
    Exit;
  end;
  // Составляем строку запроса и  отправляем
  s := 'GET http://'+host+'/'+page+' HTTP/1.0'#13#10+
      'Host: '+host+#13#10+
      'Accept: *.*, */*'#13#10#13#10;
  send(sock, s[1], length(s), 0);
  // принимаем ответ
  assignFile(f, filename);
  rewrite(f, 1);
  count := recv(sock, buf, sizeof(buf), 0);
  //n:=0; while not((buf[n]=#13) and (buf[n+1]=#10) and (buf[n+2]=#13) and (buf[n+3]=#10)) do inc(n);
  n := pos(#13#10#13#10, buf)+3;
  dec(count,n);
  move(buf[n], buf[0], count);  // отрезаем HTTP заголовки
  repeat
    blockWrite(f, buf, count, n);
    result := result+n;
    count := recv(sock, buf, sizeof(buf), 0);
  until count = 0;
  close(f);
  // Закрываем сокет – завершаем работу с сетью
  closesocket(sock);
  WSACleanup;
end;

begin
  if paramCount=4 then
  begin
    proxyhost:=paramStr(1);
    val(paramStr(2),proxyport,i);
    s:=paramStr(3);
    len:=length(s);
    host:='';
    i:=8;
    while (i<=len) and (s[i]<>'/') do begin host:=host+s[i]; inc(i); end;
    page:='';
    inc(i);
    while (i<=len) do begin page:=page+s[i]; inc(i); end;
    s:=paramStr(4);
    writeln(proxyhost,':',proxyport,' # '+host+'/'+page+' ==> '+s+'  [',
    loadToFile(proxyhost,proxyport,host,page,s), ' bytes]');
    //loadToFile('169.254.159.223', 8080, 'http://www.ya.ru/', '1.htm')
  end
    else writeln('http-page loader. v0.1 by arT(c). e-mail: [email protected]'#13#10+
      'usage:    gethttp proxyhost proxyport url filename'#13#10+
      'examples: gethttp www.google.ru 80 http://www.google.ru/page1/ no_proxy.htm'#13#10+
      'examples: gethttp myproxy 808 http://www.ya.ru/ proxy_host.htm'#13#10+
      'examples: gethttp 169.254.159.223 8080 http://www.mail.ru/auth/ proxy_ip.htm'#13#10);
end.

пример bat-файла:
Код:

@echo off
for /l %%i in (2,1,785) do gethttp 169.254.159.223 8080 http://waper.ru/forum/56?page=%%i %%i.htm

в архиве компилированная версия

abcdef 14.07.2009 12:54

Ответ: сайты о java/исходники/статьи.
 
Вложений: 1
в архиве список тем с http://waper.ru/forum/56 и http://waper.ru/forum/26 - для тех у кого ограниченный траффик


Часовой пояс GMT +4, время: 21:47.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot