Форум: "Сети";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
ВнизПроблемы с геттерами Найти похожие ветки
← →
Рацелий (2007-07-09 12:16) [0]Здравствуйте, Мастера!
У меня очень большая проблема. Я совершенно не могу получить ответ от моего скрипта. Вот что я должен, по идее, получить:
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;
← →
Рацелий (2007-07-09 12:17) [1]Очень прошу, помогите!
← →
umbra © (2007-07-09 12:51) [2]а можно полностью привести тексты запроса и ответа сервера, полученные сниффером каким-нибудь?
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.042 c