Показать сообщение отдельно
  #1  
Старый 10.05.2010, 15:36
terom terom вне форума
Прохожий
 
Регистрация: 05.05.2010
Сообщения: 5
Репутация: 10
По умолчанию Первая программа

Привет люди) Написал тут свою первую программку, без интерфейса, которая отправляет GET запрос на сайт, указанный в файле, вроде компилиться, работает, но если ставлю в автозапуск, то она ошибку выдает. Хотя и без автозапуска тоже ошибку выдает, но не сразу (эт на XP), на windows 7 не выдает, но автозапуск на семерке ещё не пробовал. Прикрепляю исходник. Писал на delphi 7. Помогите пожалуйста) исправьте, если что не так
Код:
program httpget;

uses
  SysUtils,
  windows,
  winsock;


var
i: integer;
myFile: TextFile;
mass: Array[1..4] of string;
//{$apptype console}


function HostToIP(Name: string): string; forward;


procedure getsend(ip:string; port:integer; host:string; path:string);
var
  WSAData1: TWSAData;
  SockAddr1:TSockAddr;
  Socket1: TSocket;
  Buffer1: string;
begin
  if ip = ' ' then
  ip := HostToIP(host);

  if WSAStartup(MAKEWORD(2,2), WSAData1)=0 then begin
  Socket1:=Socket(AF_INET,SOCK_STREAM,0);
  if Socket1<>INVALID_SOCKET then begin
  SockAddr1.sin_family:=AF_INET;
  SockAddr1.sin_addr.S_addr:=inet_addr(PChar(ip));
  SockAddr1.sin_port:=htons(port);
  if Connect(Socket1,SockAddr1,SizeOf(SockAddr1))=0 then begin
  if host <> ' ' then
  host := 'Host: '+host+#13#10;
  Buffer1:='GET /'+path+' HTTP/1.1'+#13#10+host+
           'Connection: close'+#13#10+
           #13#10;
  send(Socket1,Buffer1[1],Length(Buffer1),0);
  CloseSocket(Socket1);
  end;
  end;
  end;
end;


function HostToIP(Name: string): string; 
var
ip : string;
wsdata : TWSAData; 
hostName : array [0..255] of char; 
hostEnt : PHostEnt; 
addr : PChar; 
begin 
WSAStartup ($0101, wsdata); 
try 
gethostname (hostName, sizeof (hostName)); 
StrPCopy(hostName, Name); 
hostEnt := gethostbyname (hostName); 
if Assigned (hostEnt) then 
if Assigned (hostEnt^.h_addr_list) then begin 
addr := hostEnt^.h_addr_list^; 
if Assigned (addr) then begin 
ip := Format ('%d.%d.%d.%d', [byte (addr [0]), 
byte (addr [1]), byte (addr [2]), byte (addr [3])]); 
Result := ip; 
end 
else 
Result := ''; 
end 
else 
Result := ''
else begin 
Result := ''; 
end; 
finally 
WSACleanup; 
end 
end;


begin
//sleep(60000);
i := 0;
AssignFile(myFile, 'dann.bin');
Reset(myFile);
 while not Eof(myFile) do
  begin
	i := i+1;
	ReadLn(myFile, mass[i]);
//	WriteLn(mass[i]);
  end;
CloseFile(myFile);
while 1 = 1 do
begin
getsend(mass[1], StrToInt(mass[2]), mass[3], mass[4]);
sleep(30000);
end;
end.
Вложения
Тип файла: rar httpget.rar (1,010 байт, 8 просмотров)
Ответить с цитированием