网络接口更改后Java重新连接

时间:2013-02-20 16:03:36

标签: java apache apache-httpclient-4.x jdk1.6 sardine

我正在编写一个使用Sardine的文件同步客户端(在Java 1.6中):

https://code.google.com/p/sardine/

当Sardine失去与服务器的连接(即网络中断或从LAN更改为WiFi)时,我无法重新连接,直到我完全停止客户端并重新启动它。

我尝试了以下内容:

  • 垃圾邮件连接
  • 动态重新创建沙丁鱼对象
  • 使用最新的Apache HTTP库重新打包沙丁鱼源代码

据我所知,实际网络发生在AbstractHttpClient内,但我不确定接下来要尝试什么。

有关如何动态重新连接的任何建议,无论原因是什么?

1 个答案:

答案 0 :(得分:0)

您需要关闭沙丁鱼对象并创建另一个对象,例如:

Sardine sardine = SardineFactory.begin();

sardine.createDirectory(url);

if (sardine != null) {
    sardine.shutdown();
}

sardine = SardineFactory.begin();

// use again