首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与java的SMB连接

与java的SMB连接
EN

Stack Overflow用户
提问于 2013-03-26 05:50:15
回答 1查看 4.6K关注 0票数 3

嗨,我已经创建了一个与SMB协议连接的测试程序。我的动机是在像String path="smb://192.168.143.134/rtf2xml/"+sharedFolder+"/test.txt";这样的共享位置上创建一个String path="smb://192.168.143.134/rtf2xml/"+sharedFolder+"/test.txt";文件

但是当我尝试运行我的程序时(下面是代码示例)

代码语言:javascript
复制
import java.io.IOException;

import jcifs.smb.NtlmPasswordAuthentication;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileOutputStream;


public class Test {

    /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
        String user = "abc";
        String pass ="123456";

        String sharedFolder="INPUT";
        String path="smb://192.168.143.134/rtf2xml/"+sharedFolder+"/test.txt";
        NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("192.168.143.134",user, pass);
        SmbFile smbFile = new SmbFile(path, auth);
        smbFile.createNewFile();
        SmbFileOutputStream smbfos = new SmbFileOutputStream(smbFile);
        smbfos.write("testing....and writing to a file".getBytes());
        System.out.println("completed ...nice !");
    }

}

它正在抛出异常

代码语言:javascript
复制
Exception in thread "main" jcifs.smb.SmbException: Failed to negotiate
jcifs.smb.SmbException: Timeout trying to open socket
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at jcifs.netbios.NbtSocket.<init>(NbtSocket.java:59)
    at jcifs.smb.SmbTransport.run(SmbTransport.java:342)
    at java.lang.Thread.run(Unknown Source)

    at jcifs.smb.SmbTransport.start(SmbTransport.java:315)
    at jcifs.smb.SmbTransport.negotiate0(SmbTransport.java:865)
    at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:941)
    at jcifs.smb.SmbTree.treeConnect(SmbTree.java:119)
    at jcifs.smb.SmbFile.connect(SmbFile.java:827)
    at jcifs.smb.SmbFile.connect0(SmbFile.java:797)
    at jcifs.smb.SmbFile.open0(SmbFile.java:852)
    at jcifs.smb.SmbFile.createNewFile(SmbFile.java:2265)
    at Test.main(Test.java:22)

    at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:947)
    at jcifs.smb.SmbTree.treeConnect(SmbTree.java:119)
    at jcifs.smb.SmbFile.connect(SmbFile.java:827)
    at jcifs.smb.SmbFile.connect0(SmbFile.java:797)
    at jcifs.smb.SmbFile.open0(SmbFile.java:852)
    at jcifs.smb.SmbFile.createNewFile(SmbFile.java:2265)
    at Test.main(Test.java:22)

怎么摆脱这个?

EN

回答 1

Stack Overflow用户

发布于 2017-08-25 21:28:51

  1. 但是,我认为您必须确保目标服务器(192.168.143.134)处于正常运行状态。
  2. 您可以使用以下方式编写它,因为smb链接中包含的IP。 path="smb://192.168.143.134/rtf2xml/"+sharedFolder+"/test.txt";String[] IOException (String[] args)抛出IOException{ String user = "abc";String pass ="123456";String sharedFolder="INPUT";String NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("",user,pass);//注意到这里SmbFile smbFile =新的smbFile(路径,auth);smbFile.createNewFile();SmbFileOutputStream smbfos =新SmbFileOutputStream(smbFile);smbfos.write("testing....and写入文件“.getBytes());System.out.println(“已完成...nice !"); }.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15630240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档