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

📄 ftp.cpp

📁 本程序可以实现一种通信功能。它是客户端实现文件传输的一种程序
💻 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 + -