|
#1
|
|||
|
|||
Первая программа
Привет люди) Написал тут свою первую программку, без интерфейса, которая отправляет 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. Последний раз редактировалось terom, 10.05.2010 в 19:36. |
#2
|
||||
|
||||
а не легче было сразу код выложить? а то как то скачвать и смотреть впадловато
Ты уверен что сразу после запуска у тебя включен нет? может это из за интернета? Не твори зла, и жизнь повернется к тебе передом |
#3
|
|||
|
|||
уверен, без нета тоже работает, только не отправляет)
|
#4
|
||||
|
||||
У меня работает стабильно. Какая ошибка хоть выстреливает? Скриншот или описание оибки в студию пожалуйста
|
#5
|
|||
|
|||
Вот скрин ошибки
|
#6
|
|||
|
|||
помогите пожалуйста? не думаю, что это сложно... в принципе, я проверял на двух компах: у себя на гостевой и на компе брата, на них одинаковая ОС - Windows XP DM edition, так что может это из за винды, может кто нибудь ещё проверит у себя?
|