2012-03-28 145 views
0

我需要一个Java程序从Web服务器下载一系列文件,我需要关闭然后重新打开每个文件下载之间的tcp/ip连接。Java关闭TCP/IP连接

不知道如何做到这一点。

+0

[你有什么试过?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) – 2012-03-29 06:04:14

回答

1

这里不仅从插座80获取任何信息(HTTP),但一般以检索邮件的一个低级别的方式,做一个用“telnet”等:

socket = new Socket(); 
socket.connect(new InetSocketAddress(host, port)); 
reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); 

现在做一个调用来检索一个页面,发送get命令,设置内容类型,并发送两个'\ n'。

有一个更高层次的解决方案: Send HTTP GET request with header

+0

谢谢。这就是我要找的。欣赏快速响应。 – BourneAgain 2012-03-29 14:59:41

+0

只是后续问题。一旦我关闭套接字,并尝试再次使用它(socket.connect(new InetSocketAddress(host,80));)我收到一个java.net.SocketException:Socket是关闭错误。我似乎无法重新打开它。所以我只是声明套接字套接字=新的套接字();套接字套接字=新的套接字(),等等...有多少文件,我在代码中获得。这是正确的方式,还是我可以重新打开我关闭的套接字? – BourneAgain 2012-03-29 15:05:01

+0

自从我编写这样的代码已经有一段时间了,但从我记忆中,这段代码的意图是进行无状态调用(即获取数据,然后关闭流和套接字)并结束程序(我遗漏了)。要进行多次http调用,您可以创建一个套接字对象,以及2.一个InetSocketAddress对象。然后,对于每次调用,只需修改InetSocketAddress的字段(通过调用其上的某些set方法),创建一个新的读写器,获取页面,然后执行close语句。 – SunKing2 2012-03-29 22:59:38

0

您可以创建要发送到,然后使用FileInputStream文件读入到一个字节数组和发送的字节数组通过DataOutPutStream的IP和端口,然后做的时候只是冲洗DataOutputStream类和关闭Socket Socket再次调用函数发送下一个文件。

0

使用逻辑: 请张贴的东西,你都试过了。

do{ 
     connection.open; 
     while(!eof){ 
     fetchfiles(); 
     } 
    connection.close; 
    }while(no of files yet to download);