2016-03-01 66 views
3

我发现了一个奇怪的情况。我用我的项目jcifs-1.3.18.jar读取本地网络中的文件。Android JCIFS无法建立会话

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) 
... 

对不起,我的英文。

回答

0

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

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

谢谢