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工作正常,除非您中斷目標機器上的網絡連接(電纜斷開)。

謝謝