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

📄 receiveserver.java

📁 该程序是使用java开发的文件传输。。。。。
💻 JAVA
字号:

import java.io.*;
import java.net.*;
import javax.swing.*;
import java.util.StringTokenizer;

public class ReceiveServer implements Runnable{
  ServerSocket server;
  Socket fromClient;
  Thread serverThread;
  
  public ReceiveServer(){
   try{
       server=new ServerSocket(1066);
       serverThread=new Thread(this);
       serverThread.start();
   }catch(Exception e){
       System.out.println("Cannot start the thread:"+e);
   }
  }
  public static void main(String args[]){
      new ReceiveServer();
  }
  public void run(){
    try{
        while(true){
          fromClient=server.accept();
          Connect con=new Connect(fromClient);
        }
       }catch(Exception e){
          System.out.println("Cannot listen to the Client"+e);
       }
  }
 } 
 class Connect extends JFrame{
     PrintStream streamToClient;
     ObjectInputStream streamFromClient;
     String message="";
     String fileName="";
     JFileChooser jFileChooser1;
     public Connect(Socket inFromClient){
         jFileChooser1 = new JFileChooser();
         try{
             streamFromClient =new ObjectInputStream(inFromClient.getInputStream());
             streamToClient=new PrintStream(inFromClient.getOutputStream());        
             message=(String)streamFromClient.readObject();
             fileName=(String)streamFromClient.readObject();
             if(message.equals("sendData")){                 
                 int decide=javax.swing.JOptionPane.showConfirmDialog(null,"你收到文件"+fileName);
                 if(decide==-1||decide==2||decide==1){
                       streamToClient.println("refuse");
                   }
                 if(decide==0){
                       if (JFileChooser.APPROVE_OPTION == jFileChooser1.showSaveDialog(this)) {
                            fileName = jFileChooser1.getSelectedFile().getPath();
                          }
                       streamToClient.println("accept");
                       receiveData(fileName);
                       
                   }
             }
         } catch(Exception e){
			System.out.println("Cannot get the client stream connect" + e);
         }
         finally{
                try{
                     inFromClient.close();
                 }catch(IOException e){
                     
                 }                  	
         }

     }
     public void receiveData(String fileName)throws Exception{
          receiver send=new receiver();
          send.show();
          String fn=fileName;
          boolean eof=false;
          String msg;
          byte [] data=new byte[1024];
          File file=new File(fn);
          long fileLength=Integer.parseInt((String)streamFromClient.readObject());
          JOptionPane.showMessageDialog(this,"你所接收的文件大小为"+fileLength+"字节", "Message", JOptionPane.INFORMATION_MESSAGE);
          int i=(int)(fileLength/1024)+1;
          RandomAccessFile fileOutput=new RandomAccessFile(file,"rw");
           for(int j=0;j<i;j++){             
             msg=(String)streamFromClient.readObject();
             if(msg.equals("send")){
              streamFromClient.read(data);
              send.set(j);
              fileOutput.write(data);
             }
             else break;
          }  
          fileOutput.close();
          send.dispose();
    }
   }

⌨️ 快捷键说明

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