代码:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdarg.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #include <sys/types.h>
int hostconnect(char *usraddr,int port) //connect function { int sock; struct hostent *host; struct sockaddr_in sa; host==gethostbyname(usraddr); if (host==NULL) return -2; sock=socket(AF_INET,SOCK_STREAM,0); if (sock<0) return -1; sarmset(&sa,0,sizeof sa); sarmcpy(sa.sin_addr,host->h_addr_list[0],host->h_length); sa.sin_family=AF_INET; sa.sin_port=htons(port); return (connect(sock,(struct sockaddr *)&sa,sizeof (sa))<0)?-1:sock; }
int hostsend(int sock,char *format,...)//send function { char BUFFER[1024]; va_list argptr; va_start(argptr,format); vsprintf(BUFFER,format,argptr); va_end(argptr); return send(sock,BUFFER,strlen(BUFFER),0); }
main (int argc,char *argv[]) { int black_sock,port; char bugs_bunny[3]; port=atoi(argv[2]); if (argc<3) exit(1); black_sock=hostconnect(argv[1],port); if (black_sock<0) exit(2); hostsend(black_sock,"GET /HTTP/1.0 %c",20); hostsend(black_sock,"HOST:%s,%c",argv[1],20); hostsend(black_sock,"%c",20); while(read(black_sock,bugs_bunny,1)>0) { printf ("%C",bugs_bunny[0]); } close(black_sock); }
[此贴被 探索者(quest) 在 04月07日17时01分 编辑过]
|