ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 06.05.2010, 01:59
Аватар для [stranger]
[stranger]
Участник форума
Регистрация: 02.02.2010
Сообщений: 107
Провел на форуме:
612028

Репутация: 28
Отправить сообщение для [stranger] с помощью ICQ
По умолчанию

нафига копируешь в цикле?
есть ведь длина полученных данных, юзай copy
 
Ответить с цитированием

  #12  
Старый 06.05.2010, 02:17
Аватар для Chrome~
Chrome~
Постоянный
Регистрация: 13.12.2008
Сообщений: 354
Провел на форуме:
1747641

Репутация: 175
Отправить сообщение для Chrome~ с помощью ICQ
По умолчанию

Вот код полностью рабочий код, который я переработал из твоего. Посмотри, что к чему.

Код:
function LookupName(str: string): TInAddr;
var 
  _hostEnt:PHostEnt; 
  _inAddr:TInAddr;
begin
  if (str[1] in ['a'..'z']) or
      (str[2] in ['a'..'z']) then
  begin
    _hostEnt := getHostByName(pchar(str));
    FillChar(_inAddr, sizeOf(_inAddr), 0);
    if _hostEnt<>nil then 
    begin
      with _hostEnt^, _inAddr do
      begin 
        s_un_b.s_b1 := h_addr^[0]; 
        s_un_b.s_b2 := h_addr^[1];
        s_un_b.s_b3 := h_addr^[2]; 
        s_un_b.s_b4 := h_addr^[3]; 
      end;
    end; 
  end
  else
    _inAddr.s_addr := inet_addr(pchar(str));
  Result:= _inAddr;
end;

function SendRequest(URL,PACKET:string):string;
var
 buf      : array[1..1500] of char;
 wData    : WSADATA;
 addr     : sockaddr_in;
 sock     : integer;
 error    : integer;
 phe      : PHostEnt;
 len,i,d  : Integer;
begin
 Result := '';
 WSAStartup($0101, wData);
 phe := gethostbyname(PChar(url));
 sock := socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
 addr.sin_family := AF_INET;
 addr.sin_port   := htons(80);
 addr.sin_addr := LookupName(URL);
 error := connect(sock, addr, sizeof(addr));

 len := 0;

 send(sock, PACKET[1], Length(PACKET),0);
repeat
    FillChar(buf,SizeOf(buf),0);
    d:=recv(sock,buf,SizeOf(buf),0);
    len:=len+d;
    for i:=1 to d do result := result + buf[i];
until d<=0;

 closesocket(Sock);
 WSACleanup;
end;

function Get(const AURL: string): string;
var
  req  : string;
  tmp, tmp2  : string;
begin
  tmp := AURL;
  if pos('http://', tmp) = 1 then
    Delete(tmp, 1, 7);

  if pos('/', tmp) <> 0 then tmp2 := copy(tmp, pos('/', tmp), 255)
  else tmp2 := '/';

  req:='GET ' + tmp2 + ' HTTP/1.0' + #13#10 +
       'Host: ' + tmp + #13#10+
       'User-Agent: Opera/9.24 (Windows NT 5.1; U; en)' + #13#10 +
       'Connection: close' + #13#10#13#10;

  result := SendRequest(tmp, req);
end;
 
Ответить с цитированием

  #13  
Старый 06.05.2010, 02:55
Аватар для RedFern.89
RedFern.89
Постоянный
Регистрация: 20.01.2010
Сообщений: 338
Провел на форуме:
500264

Репутация: 69
Отправить сообщение для RedFern.89 с помощью ICQ
По умолчанию

вот Сылка "vkComp.pas"
Пароль: password1234

Chrome~, буду очень признателен за помощь!)))

Последний раз редактировалось RedFern.89; 06.05.2010 в 03:03..
 
Ответить с цитированием

  #14  
Старый 06.05.2010, 09:46
Аватар для slesh
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

2 Chrome~ ошибочка у тебя есть небольшая )
Код:
repeat
    FillChar(buf,SizeOf(buf),0); // зачем очищать буфер? Если всё равно ты знаешь размер полученных данных которыми забился буфер
    d:=recv(sock,buf,SizeOf(buf),0); // тут у тебя D будет содержать размер данных или -1 при ошибке
    len:=len+d; // а если была ошибка и d =-1 то ты от уже считанных данных откусишь 1 байт.
    for i:=1 to d do result := result + buf[i]; // зачем?? если можно сразу копировать через copy
until d<=0;
 
Ответить с цитированием

  #15  
Старый 06.05.2010, 16:49
Аватар для Chrome~
Chrome~
Постоянный
Регистрация: 13.12.2008
Сообщений: 354
Провел на форуме:
1747641

Репутация: 175
Отправить сообщение для Chrome~ с помощью ICQ
По умолчанию

slesh, да не спорю, ты прав )
Но это не я писал этот код, его писал RedFern.89. Просто именно в этой части кода я не делал никаких изменений. Делал только в тех частях, которые влияют на то, что нам отсылает сервер. То есть немного изменил формирование самого GET запроса.

А на счет данной части кода: написано действительно неэффективно, без какой либо оптимизации.

RedFern.89, архив либо битый, либо пасс не подходит.
Попробуй сам внести изменения в свой код используя то, что я отписал выше.
 
Ответить с цитированием

  #16  
Старый 07.05.2010, 09:36
Аватар для RedFern.89
RedFern.89
Постоянный
Регистрация: 20.01.2010
Сообщений: 338
Провел на форуме:
500264

Репутация: 69
Отправить сообщение для RedFern.89 с помощью ICQ
По умолчанию

я с циклом не могу разобраца никак
 
Ответить с цитированием

  #17  
Старый 08.05.2010, 01:27
Аватар для RedFern.89
RedFern.89
Постоянный
Регистрация: 20.01.2010
Сообщений: 338
Провел на форуме:
500264

Репутация: 69
Отправить сообщение для RedFern.89 с помощью ICQ
По умолчанию

так кто поможет с циклом?
 
Ответить с цитированием

  #18  
Старый 08.05.2010, 02:09
Аватар для RedFern.89
RedFern.89
Постоянный
Регистрация: 20.01.2010
Сообщений: 338
Провел на форуме:
500264

Репутация: 69
Отправить сообщение для RedFern.89 с помощью ICQ
По умолчанию

отрубил антивирь, и все прекрасно работает)))) хз в ччем дело..если я запрашиваю другими компонентами страницы, то все норм а так посему то грузит и не до конца... странности какието со всем этим... =\
 
Ответить с цитированием

  #19  
Старый 08.05.2010, 03:28
Аватар для RedFern.89
RedFern.89
Постоянный
Регистрация: 20.01.2010
Сообщений: 338
Провел на форуме:
500264

Репутация: 69
Отправить сообщение для RedFern.89 с помощью ICQ
По умолчанию

и причем запрос get работатет только при запущенном http analyzer'е о________________О
 
Ответить с цитированием

  #20  
Старый 09.05.2010, 15:43
Аватар для Chrome~
Chrome~
Постоянный
Регистрация: 13.12.2008
Сообщений: 354
Провел на форуме:
1747641

Репутация: 175
Отправить сообщение для Chrome~ с помощью ICQ
По умолчанию

Скажи, с каким циклом у тебя проблемы, помогу.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Основные проблемы, связанные с железом. last_root Аппаратное обеспечение 11 15.01.2009 13:21
Грузит но не входит, в чем проблема...? MaTpOc ICQ 11 28.12.2008 10:56
В чем проблема?! Benzin Защита ОС: вирусы, антивирусы, файрволы. 3 24.01.2007 18:53
О чем мечтает российская молодежь? tester2005 Болталка 7 20.07.2005 20:04



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ