1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86:
| program Project1;
{$APPTYPE CONSOLE}
uses windows, winsock;
type WSAevent=THandle; function WSACreateEvent:WSAEvent;stdcall; external 'ws2_32.dll' name 'WSACreateEvent'; function WSACloseEvent(hEvent:WSAevent):bool;stdcall; external 'ws2_32.dll' name 'WSACloseEvent'; function WSAResetEvent(hEvent: WSAEvent):bool;stdcall; external 'ws2_32.dll' name 'WSAResetEvent'; function WSAEventSelect(s:TSocket;hEventObject:WSAevent;lNetworkEvents:LongInt):Integer; stdcall; external 'ws2_32.dll' name 'WSAEventSelect'; function WSAWaitForMultipleEvents(cEvents:DWord; lphEvents:Pointer; fWaitAll:bool; dwTimeOUT:DWord; fAlertable:bool):DWord;stdcall; external 'ws2_32.dll' name 'WSAWaitForMultipleEvents';
var SockAddr1:TSockAddr;
const WSA_WAIT_EVENT_0 = WAIT_OBJECT_0;
procedure main; var wsaData:TwsaData; SockEvent:WSAEvent; Socket1:TSocket; WSAresult:Integer; buf:array[0..511] of char; s:string; begin WSAStartUp(MakeWord(2,0),WSAData);
Socket1:=Socket(af_Inet,Sock_Stream,IPProto_TCP); Connect(Socket1,SockAddr1,sizeof(TSockAddr)); SockEvent:=WSACreateEvent; WSAEventSelect(Socket1,SockEvent,FD_Read);
s:='GET /index.php?name=ddd HTTP/1.1'+#13#10+ 'Host: 127.0.0.1'+#13#10+ 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3'+#13#10+ 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'+#13#10+ 'Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3'+#13#10+ 'Accept-Encoding: gzip,deflate'+#13#10+ 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7'+#13#10+ 'Keep-Alive: 115'+#13#10+ 'Connection: keep-alive'+#13#10#13#10;
send(Socket1,s[1],length(s),0); repeat WSAResult:=WSAWaitForMultipleEvents(1,@SockEvent,false,infinite,false); case WSAResult of WSA_WAIT_EVENT_0 : begin fillchar(buf,sizeof(buf),0); recv(Socket1,buf,512,0); write(buf); end; else break; end; WSAresetEvent(SockEvent); until false;
WSACloseEvent(SockEvent); WSACleanUp; end;
begin SockAddr1.sin_family := af_Inet; sockaddr1.sin_port := $5000; sockaddr1.sin_addr.S_addr := $*****; main; end. |