Android JCIFS 无法建立会话

Posted

技术标签:

【中文标题】Android JCIFS 无法建立会话【英文标题】:Android JCIFS Failed to establish session 【发布时间】:2016-06-13 18:44:26 【问题描述】:

我发现了一个奇怪的情况。我在我的项目中使用 jcifs-1.3.18.jar 来读取本地网络中的文件。

String url_file = "smb://10.0.0.55/hermes_lite/ttt.txt";
SmbFile smb_file;
boolean b = false;
try
         
  smb_file = new SmbFile(url_file);         
  try
  
     b = smb_file.exists();            
  
  catch(SmbException e)
  
     e.printStackTrace();
  

catch(MalformedURLException e1)

   e1.printStackTrace();

程序启动时,我第一次检查文件。我还检查了 WiFi 连接时的文件(通过 BroadCastReceiver)。 如果第一次在“smb_file.exists()”指令上我会有异常(异常 - 网络不可达,当 WiFi 仍然没有连接时),第二个和后面的“smb_file.exists()”指令也会抛出异常 但已经“无法建立会话”。异常继续发生,直到我在最近的任务列表中终止该应用程序。

jcifs.smb.SmbException: Failed to connect: WORKGROUP<00>/10.0.0.55
jcifs.util.transport.TransportException
java.io.IOException: Failed to establish session with WORKGROUP<00>/10.0.0.55
at jcifs.smb.SmbTransport.ssn139(SmbTransport.java:239)
at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:249)
...

对不起我的英语。

【问题讨论】:

【参考方案1】:

这是 jcifs 中的问题,使用主机名而不是 IP(您可以查看网络流量,通过端口 139 过滤,观察来自目标机器的“需要调用名称”消息)。

根据我的经验,除非您中断目标机器上的网络连接(电缆断开),否则 IP 工作正常。

谢谢

【讨论】:

以上是关于Android JCIFS 无法建立会话的主要内容,如果未能解决你的问题,请参考以下文章

KSoap-Android\JCIFS 发送空的 HTTP 帖子

JCIFS:文件检索太慢而无法使用

JCIFS jcifs.smb.SmbException:连接到系统的设备无法正常工作

性能:Android JCIFS 文件读取速度慢

在 android 2.3 上使用 jcifs 库时出现 NoClassDefFound 异常

在 Android 上使用 JCIFS 库时在 URL 中使用 SMB 协议