HanDs
NO.2

[Delphi文章] Winsock实现Http协议GET的刷点击 





学习中请遵循国家相关法律法规,黑客不作恶。没有网络安全就没有国家安全

本站需要登陆后才能查看

昨天闲来无聊,便想写一个关于Http协议用winsock的实现。

多方查找资料以后终于写出来一个。使用了winsock2库,实际上用winsock库即可实现,修改一下函数的调用参数即可。

 
//声明
 
s: TSocket;
add: TSockaddr;
mycmdstr: string;
i: Longint;
recvbuf: array[0..332] of char;
 
//
 
WSAStartup($101, wsdata); //首先初始化
 
//建立套接字和设置地址
 
s := WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, nil, 0, 0);
add.sin_family := af_inet;
add.sin_port := htons(80); //端口
add.sin_addr.s_addr := inet_addr('202.101.189.122'); //HTTP服务器IP
 
//连接目标端口
 
if (connect(s, @add, sizeof(add))<>0) then
begin
  writeln('err');
  closesocket(s);
  exit;
end;
 
//设置命令 url为地址
 
//标准的http协议的get指令格式为
 
//GET /index.asp http/1.1
 
//如果是代理服务器则要填绝对地址
 
//但是我试了很多次都无法成功,于是抓包看了一下,有些服务器是不带协议的
 
//这样 GET /index.asp
 
//所以当有问题的时候就抓包看一下就解决了
 
mycmdstr := 'GET ' + url +' '+#13#10#13#10#0;
 
strpcopy(recvbuf,mycmdstr);
i:=length(mycmdstr);
writeln(recvbuf);
send(s,recvbuf,i,0); //发送命令
 
//这里可以用recv接收服务器的返回数据,但是我只是做一个简单的GET,刷点击用,为了效率就不接收了。
closesocket(s); //关闭套接字
 
//好了,当然上面可以做成循环以实现刷点击或多次GET的功能
 
//最后别忘了
 
WSAcleanup;


学习中请遵守法律法规,本网站内容均来自于互联网,本网站不负担法律责任
Winsock 实现 Http 协议 GET 的刷点击
#1楼
发帖时间:2016-7-9   |   查看数:0   |   回复数:0
游客组