📄 ftp.cpp
字号:
import java.io.*;
import java.net.*;
import java.util.*;
import java.lang.*;
public class Server {
ServerSocket server1=null;
//ServerSocket server2=null;
//Socket sock2=null;
public Server() {
try{
server1=new ServerSocket(5555);
if(this.server1!=null)
System.out.println("服务器正常启动....");
else
System.out.println("服务器启动失败");
}catch(IOException e)
{
e.printStackTrace();}
}
public void listen(int i)
{ Socket sock1=null;
try{
sock1=this.server1.accept();
}catch(IOException e)
{
e.printStackTrace();}
getConnection gc=new getConnection(server1,sock1,i);
gc.start();
System.out.println(server1.getInetAddress()+"执行完毕!");
}
public static void main(String args[])
{
/* String str=null;
System.out.println("请输入文件下载路径:路径分割符为'\\\\'");
try{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
str=br.readLine();
}catch(IOException e)
{e.printStackTrace();
} */
Server server=new Server();
int i=0;
while(true){
i++;
server.listen(i);
}
}
}
class getConnection extends Thread{
ServerSocket server=null;
Socket sock=null;
int flag;
public getConnection(ServerSocket ss,Socket s,int i)
{ this.server=ss;
this.sock=s;
this.flag=i;
this.setPriority(10-i);
}
public void run(){
try{
System.out.println(Thread.currentThread()+":");
System.out.println(this.sock.getInetAddress()+"建立连接.....");
File file=new File("c:\\test.txt");
long length=file.length();
int page=(int)(length/5);
int local=(this.flag-1)*page;
RandomAccessFile raf=new RandomAccessFile(file,"rw");
//OutputStream ops1=this.sock.getOutputStream();
//OutputStream doc1=new DataOutputStream(new BufferedOutputStream(ops));
raf.seek(local);
//FileInputStream fis=new FileInputStream(raf);
OutputStream ops=this.sock.getOutputStream();
OutputStream doc=new DataOutputStream(new BufferedOutputStream(ops));
byte[] buf=new byte[page];
try{
raf.read(buf,0,page);
}catch(IndexOutOfBoundsException ebe)
{
ebe.printStackTrace();
}
System.out.println(Thread.currentThread()+"开始传输文件");
// int num=fis.read(buf);
doc.write(buf,0,page);
/*
int i=0;
while(num!=(-1))
{ i++;
if(i==this.flag)
{
doc.write(buf,0,num);
doc.flush();
}
num=fis.read(buf);
} */
System.out.println(Thread.currentThread()+"传输文件完毕");
raf.close();
//fis.close();
doc.close();
}catch(Exception e)
{
e.printStackTrace();}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -