Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблемы с геттерами


Рацелий ©   (2007-07-09 12:16:00) 

Здравствуйте, Мастера!
У меня очень большая проблема. Я совершенно не могу получить ответ от моего скрипта. Вот что я должен, по идее, получить:
crc32.php:8465126387 libcrc32.php:748454565
а в ответ пустоту. Если убрать вырезку html, то вот что получаю:
HTTP/1.1 200 OK
Date: Sun, 08 Jul 2007 08:16:08 GMT
Server: Apache/1.3.33 (Win32) PHP/4.4.2
X-Powered-By: PHP/4.4.2
Connection: close
Content-Type: text/html
Я совершенно не могу понять в чем причина, я уже нашел топик здесь на 4 странице, скопировал код, но все равно не то. Скрипт 100% рабочий.
Код программы и скрипт вы можете скачать отсюда:
http://hate.byethost.com/iq/e107_files/public/36_mycvs_updater.zip
А вот выкладываю просто код (если кто-то не хочет закачивать):
function GetData(const action: string; get: boolean): string;
const
  host = 'test1.ru';
var
  wData : WSADATA;
  addr  : sockaddr_in;
  sock  : TSocket;
  error : integer;
  buf   : array [0..1023] of Char;
  s     : string;
  phe   : PHostEnt;
begin
//Инициализация сокета
  Result := '';
  WSAStartup($0101, wData);
  phe := gethostbyname(PChar(string(host)));
  if phe = nil then
  begin
    WSACleanup;
    Exit;
  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(80);
  addr.sin_addr   := PInAddr(phe.h_addr_list^)^;

  error := connect(sock, addr, sizeof(addr));
  if error = SOCKET_ERROR then
  begin
    closesocket(sock);
    WSACleanup;
    Exit;
  end;

// Составляем строку запроса
 s := 'GET /crc32.php?action=updater&mode=view' + ' HTTP/1.0'#13#10 + 'Host: ' + host + #13#10#13#10;
 {str := 'POST /crc32.php?action=update' + ' HTTP/1.0'#13#10 +
        'Host: ' + host + #13#10 +
        'Content-Type: application/x-www-form-urlencoded'#13#10 +
        'Content-Length: 14'#13#10#13#10 + 'action=updater';  }

// отправляем
  send(sock, s[1], Length(s), 0);

// Если нужен ответ то принимаем
  if get then
  begin
    ZeroMemory(@buf, 1024);
    error := recv(sock, buf, 1024, 0);
    while error > 0 do
    begin
      Result := Result + Copy(buf, 0, error);
      error  := recv(sock, buf, 1024, 0);
    end;
  end;
// Закрываем сокет – завершаем работу с сетью
  closesocket(sock);
  WSACleanup;
   
// Вырезаем из ответа то что нам нужно, т.е. отрезаем HTTP заголовки
  //if (get) and (Result '') then
    //Result := Copy(Result, pos(#13#10#13#10, Result) + 4, Length(Result));
end;


umbra   (2007-07-09 12:51:00) [1]

а можно полностью привести тексты запроса и ответа сервера, полученные сниффером каким-нибудь?


Рацелий   (2007-07-09 12:17:00) [2]

Очень прошу, помогите!


Наверх

Титульная страница Поиск, карта сайта Написать письмо