⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 copy.java

📁 局域网传输共享文件
💻 JAVA
字号:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

import javax.swing.JScrollBar;

public class COPY {
	String f,f4,f8,addd;
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO 自动生成方法存根
		new COPY("3D Entities","E:\\游戏\\平衡球\\Ballance\\3D Entities","","121.250.218.232").f1();
	}
	public COPY(String nf4,String nf,String nf8,String naddd){
		f4=nf4;
		f8=nf8;
		addd=naddd;
		f=nf;
	}
	public COPY(){
		
	}
	public void fasong() {
		
		try {
			InetAddress add = InetAddress.getByName(addd);
			String path1="",path2="";
			if(f.endsWith(File.separator)){
				path1=f4;
				path2=f;
			}else{
				path1=f4+"\\";
				path2=f+"\\";
			}
			File f1 = new File(path2+f8);
			if (f1.isDirectory()) {
				System.out.println(f1.getAbsolutePath());
				Socket d1 = new Socket(add, 1276);
				OutputStream d1out=new DataOutputStream(new BufferedOutputStream(d1.getOutputStream()));
				byte[] b = ("?"+path1+f8).getBytes();
				System.out.println(new String(b));
				d1out.write(b);
				d1out.flush();
				d1.close();
				d1out.close();
				String[] ss=f1.list();
				ServerSocket d2=new ServerSocket(1201);
				BufferedInputStream d2in=new BufferedInputStream(d2.accept().getInputStream());
				byte[] b2=new byte[1];
				d2in.read(b2);
				d2.close();
				d2in.close();
				for(int i=0;ss!=null&&i<ss.length;i++){
					new COPY(path1+f8,path2+f8,ss[i],addd).fasong();
					System.out.println(ss[i]);
				}
			}else if(f1.isFile()){
				Socket d1 = new Socket(add, 1276);
				OutputStream d1out=new DataOutputStream(new BufferedOutputStream(d1.getOutputStream()));
				byte[] b = (path1+f8).getBytes();
				System.out.println(new String(b));
				d1out.write(b);
				d1out.flush();
				d1.close();
				d1out.close();
				ServerSocket d2=new ServerSocket(1201);
				BufferedInputStream d2in=new BufferedInputStream(d2.accept().getInputStream());
				byte[] b2=new byte[1];
				d2in.read(b2);
				d2.close();
				d2in.close();
				Socket s1=new Socket(add,2345);
				OutputStream out1=new DataOutputStream(new BufferedOutputStream(s1.getOutputStream()));
				FileInputStream in1=new FileInputStream(f1);
				System.out.println("fa流");
				byte[] b1=new byte[500];
				int num=in1.read(b1);
				while(num!=-1){
					out1.write(b1, 0,num);
					out1.flush();
					num=in1.read(b1);
				}
				s1.close();
				out1.close();
				in1.close();
				byte[] b3=new byte[300];
				ServerSocket d3=new ServerSocket(1236);
				BufferedInputStream d3in=new BufferedInputStream(d3.accept().getInputStream());
				d3in.read(b3);
				add=d3.getInetAddress();
				d3.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
	public void jieshou(){
		while(true){
			try{
				InetAddress add;
				ServerSocket d3=new ServerSocket(1276);
				BufferedInputStream d3in=new BufferedInputStream(d3.accept().getInputStream());
				
				byte[] b3=new byte[300];
				d3in.read(b3);
				add=d3.getInetAddress();
				d3.close();
				d3in.close();
				String ss=new String(b3).trim();
				
				File f;
				if(ss.charAt(0)=='?'){
					f=new File(ss.substring(1));
					f.mkdir();
					System.out.println(f.getAbsolutePath());
					Socket d4=new Socket(add,1201);
					OutputStream d4out=new DataOutputStream(new BufferedOutputStream(d4.getOutputStream()));
					byte[] b4="1".getBytes();
					d4out.write(b4);d4out.flush();
					d4out.close();
					d4.close();
				}else{
					System.out.println(ss);
					f=new File(ss);
					f.createNewFile();
					Socket d4=new Socket(add,1201);
					OutputStream d4out=new DataOutputStream(new BufferedOutputStream(d4.getOutputStream()));
					byte[] b4="1".getBytes();
					d4out.write(b4);d4out.flush();
					d4out.close();
					d4.close();
					ServerSocket server=new ServerSocket(2345);
					BufferedInputStream bserver=new BufferedInputStream(server.accept().getInputStream());
					byte[] serverb=new byte[500];
					FileOutputStream out=new FileOutputStream(f);
					System.out.println("jie流");
					int num=bserver.read(serverb);
					while (num != -1) {
						out.write(serverb, 0, num);
						num = bserver.read(serverb);
					}
					out.flush();
					out.close();
					server.close();
					bserver.close();
					Socket d5=new Socket(add,1236);
					
					byte[] b5="1".getBytes();
					DatagramPacket d5p=new DatagramPacket(b5,b5.length,add,1236);
					OutputStream d5out=new DataOutputStream(new BufferedOutputStream(d5.getOutputStream()));
					d5out.write(b5);
					d5out.close();
					d5.close();
				}
				
				
			}catch(Exception e){
				e.printStackTrace();
			}
		}
	}
	public void f1(){
		fasong();
		try{
			InetAddress add = InetAddress.getByName(addd);
			Socket d1 = new Socket(add, 1276);
			OutputStream d1out=new DataOutputStream(new BufferedOutputStream(d1.getOutputStream()));
			byte[] b = ("\\").getBytes();
			System.out.println(new String(b));
			d1out.write(b);
			d1out.flush();
			d1.close();
			d1out.close();
		}catch(Exception e){
			
		}
	}
	public int f2(String nf){
		int length=0;
		File fff=new File(nf);
		if(fff.isDirectory()){
			File[] ffff=fff.listFiles();
			for(int i=0;i<ffff.length;i++){
				length+=f2(ffff[i].getAbsolutePath());
			}
		}else{
			length+=fff.length();
		}
		return length;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -