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

📄 servertest.java

📁 局域网中实现文件的共享 本系统是在局域网中实现文件的共享
💻 JAVA
字号:
package fileTransfer;

import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerTest {
	int port = 8821;

	void start() {
		Socket s = null;
		try {
			ServerSocket ss = new ServerSocket(port);
			while (true) {
				// 选择进行传输的文件
				//String filePath = "e:\\应用软件\\lingoes_2.0.0_cn.rar";
				File folder = new File(".\\sharedFolder");
				File fi = folder.listFiles()[0];
				String filePath = fi.getAbsolutePath();	

				// public Socket accept() throws
				// IOException侦听并接受到此套接字的连接。此方法在进行连接之前一直阻塞。
				System.out.println("服务器启动成功");
				System.out.println("建立socket连接");
				System.out.println("共享文件列表:");
				System.out.println(filePath);
				System.out.println("文件长度:" + (int) fi.length());
				System.out.println("开始侦听:" + "端口" + port);	
				s = ss.accept();
				DataInputStream dis = new DataInputStream(
						new BufferedInputStream(s.getInputStream()));
				dis.readByte();

				DataInputStream fis = new DataInputStream(
						new BufferedInputStream(new FileInputStream(filePath)));
				DataOutputStream ps = new DataOutputStream(s.getOutputStream());
				// 将文件名及长度传给客户端。这里要真正适用所有平台,例如中文名的处理,
				// 还需要加工,具体可以参见Think In Java 4th里有现成的代码。
				ps.writeUTF(fi.getName());
				ps.flush();
				ps.writeLong((long) fi.length());
				ps.flush();

				int bufferSize = 8192;
				byte[] buf = new byte[bufferSize];

				while (true) {
					int read = 0;
					if (fis != null) {
						read = fis.read(buf);
					}

					if (read == -1) {
						break;
					}
					ps.write(buf, 0, read);
				}
				ps.flush();
				// 注意关闭socket链接哦,不然客户端会等待server的数据过来,
				// 直到socket超时,导致数据不完整。
				fis.close();
				s.close();
				System.out.println("文件传输完成");
				
			}

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static void main(String arg[]) {
		new ServerTest().start();
	}
}

⌨️ 快捷键说明

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