`
waldenlake
  • 浏览: 16831 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

用socket抓取网页 建立连接后如何复用同一个socket?

阅读更多
以下是程序
只能抓取前面一个网页 后面复用的不行


public class text
{
public static void main(String[] args) throws IOException
{
String hostname = "www.iteye.com";
int port = 80;
InetAddress addr = InetAddress.getByName(hostname);
System.out.println(addr);
Socket s = new Socket(hostname, port);
// s.setSoTimeout(99999);
s.setKeepAlive(true);
if(s.getKeepAlive())
{
System.out.println("******************keep-alive*****************");
}
BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
wr.write("GET / HTTP/1.1" + "\r\n" + "Host: www.iteye.com" + "\r\n" + "Connection: Keep-Alive" + "User-Agent: tse" + "\r\n");
wr.write("\r\n");
wr.flush();
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String line;
while((line = br.readLine()) != null)
{
System.out.println(line);
}
System.out.println(s.isClosed());

//以下想用复用同一个HOST+port的socket,可是不行
wr.write("GET /search HTTP/1.0" + "\r\n" + "Host: www.iteye.com" + "\r\n" + "Connection: Keep-Alive" + "User-Agent: tse" + "\r\n");
// wr.write("GET /");
// wr.write("HOST:" + hostname + "\r\n");
wr.write("\r\n");
wr.flush();
BufferedReader b = new BufferedReader(new InputStreamReader(s.getInputStream()));
String linee;
if(s.getInputStream().available()  > 0)
{
System.out.println("hava something");
}
while((linee = b.readLine()) != null)
{
System.out.println(linee);
}
}
}


分享到:
评论

相关推荐

    使用socket抓取网页源码

    本人前面已经写了一个抓取网页的程序,准确性很高,但是没有蜘蛛的爬行功能,而且效率也不是怎么很理想;本人经过一段时间的研究,参考了其他高手的程序,然后自己写了一个网页抓取的,具有蜘蛛爬行功能,大家有兴趣...

    基于TCP面向连接的 Socket网络编程实验

    4. 编写一个基于TCP面向连接的Socket网络应用程序,客户端发出数据请求命令,服务器响应并与客户端进行交互。 5. 应用相关软件进行简单的协议分析。 二、实验环境 1. Windows系列服务器 2. TCP/IP协议 3. 编程语言...

    抓取网页源代码

    抓取网页源代码,vs2012c++编写,使用socket,只支持utf-8格式网页

    牛逼抓包工具 Socket通讯抓包

    很好用的抓包工具 实现Socket客户端,服务端,转发器调用测试 很实用 Socket开发的最佳工具 很好用的抓包工具 实现Socket客户端,服务端,转发器调用测试 很实用 Socket开发的最佳工具

    c#视频控制程序,可抓取图像流信息,并且支持通过socket发送

    抓取PC机上的视频信息,经处理后,可形成视频,图像,也可把抓取到的信息通过SOCKET发送出去。

    mac socket 调试抓包工具

    SSokit.dmg

    网络编程之远程屏幕抓取程序

    网络编程之远程屏幕抓取程序,有源码!!直接可用!! #include "StdAfx.h" #include <stdio.h> DWORD WINAPI AnswerThread(LPVOID lparam) { SOCKET ClientSocket=(SOCKET)(LPVOID)lparam; int bytesRecv;...

    抓封包C++原程序.zip_c++封包_socket抓包程序_封包_抓包_抓封包

    C++ socket 抓包封包源码,使用socket通信有需要的可以拿来参考,很实用

    Socket通信编程传输协议分析的python代码及wireshark抓取文件包

    1、使用Python 等语言编写Socket 通信程序 2、基于TCP 的 SOCKET 通信测试及验证 3、TCP 通信过程分析

    使用raw_socket进行双网口数据转发

    使用raw_socket进行对一个网卡的数据抓取,再对数据修改,将数据从另外一个网口发送出去,实现数据的抓取转发

    JRex java webbrowser 爬虫ajax网页 源码

    一般在浏览器中查看页面代码 是浏览器直接下载到的页面代码 在未经渲染前 对于JS AJAX输出的内容是无法得到的 这样我们得到的页面内容和直接走socket抓取回来无任何区别 还是无法得到需要的页面内容。 JS函数及页面...

    基于C++的网络同步盘,服务端,Windows客户端和Ubuntu客户端

    本网络同步盘在工作时分为三个信道,分别为控制信道、上传信道和下载信道,每一个信道对应一个 TCP 长连接。一台客户机登陆时使用的是控制信道,登陆成功后客户机又建立两个 socket,发送 Tunnel 包提示服务器信道...

    nfqueue-tcpip-socket.rar

    1、文件夹nfqueue-tcpip中实现数据抓取-修改-发送的工作,只需要在linux环境下使用 make 即可生成对应的可执行程序,需要以root权限去执行 2、文件夹socket-tcp中实现socket的tcp客户端和服务端的代码,只需在linux...

    wireshare抓取本地进程间通信数据包

    绝对可以实现抓包,保证不像某些人只写个步骤最后不管是否可行 最后把抓取包图奉上 最后提供客户与服务器的代码保证一定学会设置 通过设置让WIRESAHRE可以抓取本地进程不用在别人的机子在自己机子上就可以实现

    Socket调试工具集

    HttpWatch 一款强大的网页数据分析工具 SocketTool调试软件是一款网络TCP/UDP通信调试工具 SockMon 完成了对WindowsSocket一系列重要API的监视与调试。 SoftXHTTPDebugger 抓取,分析和调试所有的HTTP通信信息(客户...

    基于Socket通信实现的双人黄金矿工源代码(JAVA)

    提供黄金矿工图片素材、音效素材(非黄金矿工原始音效)、完整...实现功能:基本操作(物品抓取,计分显示等)、双人对战,Socket通信状态同步,环节控制(暂停,退出,下一关等),历史得分排行,随机布局,音效添加

    BCB中的socket

    服务器客户端通信 屏幕抓取及回传 IP欺骗技术介绍文档资料,长期收藏,在此奉献。

    JRex 爬虫ajax网页 API文档

    一般在浏览器中查看页面代码 是浏览器直接下载到的页面代码 在未经渲染前 对于JS AJAX输出的内容是无法得到的 这样我们得到的页面内容和直接走socket抓取回来无任何区别 还是无法得到需要的页面内容。 JS函数及页面...

    python抓取网页内容示例分享

    复制代码 代码如下:import socketdef open_tcp_socket(remotehost,servicename): s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) portnumber=socket.getservbyname(servicename,’tcp’) s.connect((remote...

    易语言-使用 RawSocket 捕获网卡/指定程序/指定端口/指定IP 数据包

    2.然后使用socket (#AF_INET, #SOCK_RAW, #IPPROTO_IP) 来创建一个套接字 第一个参数应该是表明Internet地址格式反正只能固定这个,仅仅支持这个 参数2:表明要创建的是一个原始套接字,参数3:指定IPXY IPXY...

Global site tag (gtag.js) - Google Analytics