Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Запрос страницы с URL


Автор: Гость_Felt 8.7.2005, 05:04
Код
procedure SendMessageToServer;
var
 WSAData: TWSAData;
 vSocket: TSocket;
 Res: Integer;
 Host: TSockAddrIn;
 Text: String;
begin
 WSAStartup($101, WSAData);
 vSocket:=Socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
 if vSocket = INVALID_SOCKET then
  Exit;
 Res:=inet_addr(PChar(ServiceServer));
 if Res <= 0 then
  Exit;
 Host.sin_family:=AF_INET;
 Host.sin_port:=htons(ServiceServerPort);
 Host.sin_addr.S_addr:=Res;
 if Connect(vSocket, Host, SizeOf(Host)) > 0 then
  Exit;
 Text:='GET /service/service.php?code=1 HTTP/1.0'#13#10#13#10;
 Send(vSocket, Text[1], Length(Text), 0);
 WSACleanup;
 Sleep(1000);
end;

Код полностью работает: происходит соединение, только Apache не регистрирует входящего запроса. Может быть строка запроса написана неправильно? Хотя я пробовал ее же написать в телнете, все работало на ура. А из моей проги не хочет.

Автор: Гость_Felt 8.7.2005, 15:35
Небольшие пояснения к коду:
ServiceServer - это переменная типа String, равная значению xxx.xxx.xxx.xxx
ServiceServerPort - это Integer = 80.

Пожалуйста, не отказывайте в помощи, помогите кто чем может.

Автор: Гость_Felt 9.7.2005, 05:12
Проблему все же удалось решить. Просто нужно закрывать сокет, я же вместо этого закрывал сразу же интерфейс. Вызов CloseSocket(vSocket) перед WSACleanup решил проблему.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)