3

Hi i have created a test program to connect with SMB protocol. My motive is to create a test.txt file on a shared location like String path="smb://192.168.143.134/rtf2xml/"+sharedFolder+"/test.txt";

But when I try to run my program (below is the code sample)

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 !");
 }
}

It is throwing exception

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)

How to get rid of this?

jelmer
2,46914 silver badges27 bronze badges
asked Mar 26, 2013 at 5:50

1 Answer 1

0
  1. But l think you have to make sure that the destination server(192.168.143.134) is up and alive.

  2. you can write it the following way, since the IP in included in the smb link.

    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("",user, pass);//note here
    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 !");
    

    } ....

Amogh
4,56311 gold badges53 silver badges117 bronze badges
answered Aug 25, 2017 at 21:28
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.