public class Test_Server {
public static void main(String[] args) throws Exception {
ServerSocket ss = new ServerSocket(6666);// 创建服务器收发对象
while (true) { // 循环运行
final Socket s = ss.accept();// 得到链接
new Thread() {// 多线程,每一个客户端新一个线程
public void run() {
try {
// 输入输出流
InputStream is = s.getInputStream();
OutputStream os = s.getOutputStream();
BufferedReader br = new BufferedReader(
new InputStreamReader(is));// 包装
PrintStream ps = new PrintStream(os);// 包装
// 接收文件名检查文件是否存在,把结果返回给客户端
String filename = br.readLine();
long filelength = Long.parseLong(br.readLine());
File f = new File("E:/devlop", filename);// 读取后指定到此文件
if (f.exists() && f.length() == filelength) {
ps.print("文件已存在");
return;// 退出方法
} else {
ps.print(f.length());
}
String ip = s.getInetAddress().getHostAddress();// 获取链接此接口ip字符串
System.out.println(ip
+ (f.exists() ? "断点续传" : " 正在上传 ") + filename);// 输出信息
long start = System.currentTimeMillis();
// 定义指向文件读取网络写入文件
FileOutputStream fos = new FileOutputStream(f, true);
byte[] b = new byte[1024];
int len;
while ((len = is.read(b)) != -1)
// 读取客户段
fos.write(b, 0, len);
fos.close();
s.close();// 释放