`

使用smb协议获取远程服务器的文件(共享文件)

    博客分类:
  • Java
阅读更多

       最近用户需要需要程序定时去读取另外一台机器的EXCEL文件,我出了个解决方案:因为是windows服务器,所以我在本地映射了一个盘Z然后就想读取本机的文件那样读取,结果临到上生产的时候发现只要服务器休眠后映射就会被断开,导致读取失败,找不到文件。

       后来多方google之后,发现SMB协议 ,屌丝程序员的福音啊。

      SMB协议(百度百科) :     http://baike.baidu.com/link?url=yEZWDgVzifVDdxooeiuFu8u3PFYrU5W-5_E_kqF_mPgadRI9MeUeUv5XBX1e4r7ghpbM3lmSTY3qhnf27c0FMq

     

     JAVA中的类库:jcifs该协议做了很好的支持:

     不说了,贴代码:

      

/**
	 * 以Smb协议读取共享文件下文件
	 * @param fileName
	 * @return
	 * @throws Exception
	 */
	private InputStream getSmbRemoteFile(String fileName) throws Exception {

		String hostIp = SysConfig.getInstance().getValue("dps_host_ip");
		String domain = SysConfig.getInstance().getValue("dps_domain");
		String userName = SysConfig.getInstance().getValue("dps_username");
		String pwd = SysConfig.getInstance().getValue("dps_password");

		UniAddress dc = UniAddress.getByName(hostIp);
		NtlmPasswordAuthentication authentication = new NtlmPasswordAuthentication(
				domain, userName, pwd);
		SmbSession.logon(dc, authentication);
                
		String fileUrl = "smb://" + hostIp + "/mfgcom/Commons/DPS/" + fileName;

		logger.info(String.format("开始从远程地址:%s以SMb协议读取数据", fileUrl));
		SmbFile remoteFile = new SmbFile(fileUrl, authentication);
		// remoteFile.connect(); // 尝试连接
		logger.info("remoteFile path:" + remoteFile.getPath());

		InputStream in = new BufferedInputStream(new SmbFileInputStream(
				remoteFile));
		if (null == in) {
			logger.error(String.format("远程(%s)读取数据失败!", fileUrl));
		}
		return in;
	}

      

 

分享到:
评论

相关推荐

    C#实例 实现WMI连接目标,运行命令与获取计算机信息并能打开对方SMB同时实现连接并完成文件传输一整套解决方案 附Log4Net日志

    C#实例 实现WMI连接目标,运行命令与查询状态并能打开对方SMB同时实现连接并完成文件传输一整套解决方案 附...1、远程获取计算机信息 2、执行命令 3、重启电脑 4、打开进程 5、打开共享SMB 6、连接SMB并实现传输文件等

    超详细!java访问windows共享目录并下载文件

    java调用cmd命令实现访问windows共享目录(需不需要密码均可),然后根据指定文件路径下载文件到我们自己配置的本地目录,main函数为测试代码

    您可能没有权限使用网络资源。请与这台服务器的管理员联系以查明您是否有访问权限。拒绝访问解决方法

    139/TCP--NetBIOS会话服务,NetBIOS会话服务是TCP/IP上的NetBIOS(NetBT)协议族的一部分,它用于服务器消息块(SMB)、文件共享和打印。请设置防火墙开启相应的端口。一般只要在防火墙中允许文件夹和打印机共享服务就...

    TCPIP协议详解(4-1)

    TCP/IP概述 20 3.1 TCP/IP的优点 20 3.2 TCP/IP的层和协议 21 ...远程登录(Telnet) 25 3.4 文件传输协议(FTP) 25 3.5 普通文件传输协议(TFTP) 26 3.6 简单邮件传输协议(SMTP) 26 3.7 网络文件...

    samba的编译安装20160615_1154.7z

    ②使用smbclient获取共享文件 sudo /usr/local/samba/bin/smbclient //192.168.0.1/Share -U username%password 执行成功后进入smbclient环境,出现命令提示符:smb:\> 这里可使用的命令有: ?:列出所有可用...

    RED HAT LINUX 6大全

    14.4 共享文件和打印服务 249 14.5 优化Samba性能 250 14.6 测试配置 251 14.7 运行Samba服务器 252 14.8 共享访问 252 14.8.1 在Linux客户上使用smbclient 252 14.8.2 在Linux客户上加载共享 253 14.8.3 在Windows...

    TCP/IP技术大全(中文PDF非扫描版)

    包括开放式通信模型、TCP/IP通信模型、IP网络中的命名和寻址机制、地址解析及反向地址解析协议、DNS域字服务器、WINS、地址发现协议、IPv6、IP网络中的路由协议(RIP、OSPF等)、互联网打印协议、LDAP目录服务、远程...

    TCP-IP技术大全

    包括开放式通信模型、TCP/IP通信模型、IP网络中的命名和寻址机制、地址解析及反向地址解析协议、DNS域字服务器、WINS、地址发现协议、IPv6、IP网络中的路由协议(RIP、OSPF等)、互联网打印协议、LDAP目录服务、远程...

    TCP/IP教程TCP/IP基础

    2.3.2 文件传输协议 14 2.3.3 Telnet 14 2.3.4 Email 14 2.3.5 WWW 14 2.3.6 USENET News 15 2.4 Intranet和Extranet概览 15 2.4.1 Intranet 15 2.4.2 将Intranet对外开放 16 2.5 Internet的明天 16 2.5.1 下一代...

    TCP/IP技术大全

    2.3.2 文件传输协议 14 2.3.3 Telnet 14 2.3.4 Email 14 2.3.5 WWW 14 2.3.6 USENET News 15 2.4 Intranet和Extranet概览 15 2.4.1 Intranet 15 2.4.2 将Intranet对外开放 16 2.5 Internet的明天 16 2.5.1 下一代...

    TCP/IP详解

    2.3.2 文件传输协议 14 2.3.3 Telnet 14 2.3.4 Email 14 2.3.5 WWW 14 2.3.6 USENET News 15 2.4 Intranet和Extranet概览 15 2.4.1 Intranet 15 2.4.2 将Intranet对外开放 16 2.5 Internet的明天 16 2.5.1 下一代...

    cmd操作命令和linux命令大全收集

    copy ipadmin$svv.exe c: 或:copyipadmin$*.* 复制对方admini$共享下的srv.exe文件(所有文件)至本地C: xcopy 要复制的文件或目录树 目标地址目录名 复制文件和目录树,用参数/Y将不提示覆盖相同文件 用参数/e...

    Linux管理员指南

    使用Apache设置Web服务器 212 14.1 HTTP协议的基本原理 212 14.1.1 标题 212 14.1.2 非标准端口 213 14.1.3 进程所有者 214 14.2 安装Apache HTTP服务器 214 14.2.1 编译Apache软件 215 14.2.2...

    入门学习Linux常用必会60个命令实例详解doc/txt

    umount命令的作用是卸载一个文件系统,它的使用权限是超级用户或/etc/fstab中允许的使用者。 2.格式 unmount -a [-fFnrsvw] [-t vfstype] [-n] [-rw] [-F] device dir 3.使用说明 umount 命令是mount命令...

    SAMBA 24学时教程

    Samba的配置,涵盖smb.conf文件的分析、实现资源共享、安全保护和管理;Samba的使用,讨论Samba与UNIX、Windows 9x和Windows NT的综合应用;Samba的安全性,介绍口令加密和在Samba中使用SSL;另外,还有在广域网中...

    X-Scan v3.1

    “从文件中获取主机列表” - 选中该复选框将从文件中读取待检测主机地址,文件格式应为纯文本,每一行可包含独立IP或域名,也可包含以“-”和“,”分隔的IP范围。 “报告文件” - 扫描结束后生成的报告文件名,...

    BlueSky:SSH隧道解决方案,用于从Mac到Mac的远程连接(以前是Mac-MSP产品)

    提供的应用程序可将您连接到远程终端(SSH),屏幕共享(VNC)和文件/文件夹复制(SCP)。 您仍然需要能够以目标计算机上的用户身份进行身份验证。 由于客户端计算机上的BlueSky是传出连接,因此大多数SMB网络都...

    《Linux从入门到精通》

    2.4.5 从SMB共享卷安装 2.4.5.1 如何做 2.4.6 从硬盘安装 2.4.6.1 如何做 2.5 是否需要支持软盘? 2.6 硬盘分区 2.6.1 分区的命名设计 2.6.2 重新分区的策略 2.6.2.1 用未分区的空闲空间 2.6.2.2 用未使用...

Global site tag (gtag.js) - Google Analytics