public static void forcdt(String dir){
InputStream in = null
OutputStream out = null
File localFile = new File(dir)
try{
//创建file类 传入本地文件路径
//获得本地文件的名字
String fileName = localFile.getName()
//将本地文件的名字和远程目录的名字拼接在一起
//确保上传后的文件于本地文件名字相同
SmbFile remoteFile = new SmbFile("smb://administrator:admin@10.0.0.1/e$/aa/")
//创建读取缓冲流把本地的文件与程序连接在一起
in = new BufferedInputStream(new FileInputStream(localFile))
//创建一个写出缓冲流(注意jcifs-1.3.15.jar包 类名为Smb开头的类为控制远程共享计算机"io"包)
//将远程的文件路径传入SmbFileOutputStream中 并用 缓冲流套接
out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile+"/"+fileName))
//创建中转字节数组
byte[] buffer = new byte[1024]
while(in.read(buffer)!=-1){//in对象的read方法返回-1为 文件以读取完毕
out.write(buffer)
buffer = new byte[1024]
}
}catch(Exception e){
e.printStackTrace()
}finally{
try{
//注意用完操作io对象的方法后关闭这些资源,走则 造成文件上传失败等问题。!
out.close()
in.close()
}catch(Exception e){
e.printStackTrace()}
}
}
public class SocketTest extends Thread {private Socket so
private DataInputStream in
public static void main(String[] args) {
SocketTest app = new SocketTest()
app.startup()
}
public void startup() {
try {
// 创建服务端socket对象并指定监听端口
ServerSocket ss = new ServerSocket(9999)
System.out.println("listening...")
// 等待客户端连接
so = ss.accept()
System.out.println("connected")
// 开始读取数据
start()
} catch (Exception e) {
e.printStackTrace()
}
}
public void run() {
try {
// 创建socket输入流
in = new DataInputStream(so.getInputStream())
while (true) {
try {
// 定义接收缓冲区(64字节)
byte[] buf = new byte[64]
// 将数据读到接收缓冲区中,并返回实际读到的数据长度
int len = in.read(buf, 0, 64)
// 长度为-1说明到达输入流末尾,socket已关闭
if (len <1) {
System.out.println("closed")
break
}
System.out.println("(" + len + ")")
} catch (Exception e) {
// 读数据异常
e.printStackTrace()
}
}
} catch (Exception e) {
// 监听异常
e.printStackTrace()
}
}
}
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)