Java 客户端-服务器(从服务器到客户端的文件传输)

Java 客户端-服务器(从服务器到客户端的文件传输),java,Java,这是一个文件传输程序。客户端发送一个文件名,如果该文件存在,服务器将该文件发送给客户端。我希望服务器在文件不存在时发送类似“文件不存在”的消息 public static void main(String[] args) { Socket socket = null; String server = "localhost"; DataInputStream in; BufferedReader input; PrintWriter output; int port =

这是一个文件传输程序。客户端发送一个文件名,如果该文件存在,服务器将该文件发送给客户端。我希望服务器在文件不存在时发送类似“文件不存在”的消息

public static void main(String[] args) {

    Socket socket = null;
String server = "localhost";
    DataInputStream in;
BufferedReader input;
    PrintWriter output;
int port = 1500;

    File file;
    file = new File("G:\\o.txt");
    try{
    if(!file.exists())
         file.createNewFile();
    }
    catch(Exception e){
        System.out.println("error1");
    }


try {
    socket = new Socket(server, port);
    System.out.println("Connected To Server With This Ip" + socket.getInetAddress() + " On This Port :" + socket.getPort());
}
catch (UnknownHostException e) {
    System.out.println(e);

}
catch (IOException e) {
    System.out.println(e);

}


try {
    output = new PrintWriter(socket.getOutputStream(),true);
    input = new BufferedReader(new InputStreamReader(socket.getInputStream()));


    String filewanted="H:\\\\o.txt";
    output.println(filewanted);

    in=new DataInputStream(socket.getInputStream()); 


        int flag=0;  
        FileWriter fw = new FileWriter(file);
        BufferedWriter bw = new BufferedWriter(fw); 
        int b=in.readInt();
        for(int i=1;i<=b;i++)
           {
               String message= input.readLine();
                bw.write(message);
                bw.newLine();

                flag++;
             }
               bw.close();
               if(flag!=0){
                     System.out.println("File Was Transferd Successfuly!");   


               }


      }

catch (IOException e) {
    System.out.println(e);
}

try {
    socket.close();
}
catch (IOException e) {
    System.out.println(e);
}
}



//server


 public static void main(String[] args) {

ServerSocket serversocket;
    DataOutputStream out;
PrintWriter output;
    BufferedReader input;
    String linesent;
    int lines = 0;
    int port=1500;

try {

  serversocket = new ServerSocket(port);
  System.out.println("Server Waiting For Client On Port " + serversocket.getLocalPort()+"...");


  while(true) {
    Socket socket= serversocket.accept();
    System.out.println("Connection Accepted With This Ip: " +socket.getInetAddress() +" On This Port :" + socket.getPort());
    input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            output = new PrintWriter(socket.getOutputStream(),true);



           String f=input.readLine();
           File file;
           file = new File(f);


             BufferedReader reader = new BufferedReader(new FileReader(f));
             if(file.exists())
             {
               while (reader.readLine() != null)
                    lines++;
               reader.close();
               out=new DataOutputStream(socket.getOutputStream());
               out.writeInt(lines);
               Scanner scanner=new Scanner(file);
               while(scanner.hasNext()) 
                 {
                    linesent=scanner.nextLine();
                    output.println(linesent);
                 }         


             }
            else {

                throw new FileNotFoundException(f);


            }

    try {
        socket.close();
        System.out.println("Connection closed by client.");
    }
    catch (IOException e) {
        System.out.println(e);
    }

    }
    }



catch (IOException e) {
    System.out.println(e);
}


}
publicstaticvoidmain(字符串[]args){
套接字=空;
String server=“localhost”;
数据输入流输入;
缓冲读取器输入;
打印机输出;
int端口=1500;
文件;
file=新文件(“G:\\o.txt”);
试一试{
如果(!file.exists())
createNewFile();
}
捕获(例外e){
系统输出打印项次(“错误1”);
}
试一试{
套接字=新套接字(服务器、端口);
System.out.println(“使用此Ip连接到服务器”+socket.getInetAddress()+”,此端口:“+socket.getPort()”);
}
捕获(未知后异常e){
系统输出打印ln(e);
}
捕获(IOE异常){
系统输出打印ln(e);
}
试一试{
输出=新的PrintWriter(socket.getOutputStream(),true);
输入=新的BufferedReader(新的InputStreamReader(socket.getInputStream());
字符串filewanted=“H:\\\o.txt”;
output.println(需要文件);
in=新的DataInputStream(socket.getInputStream());
int标志=0;
FileWriter fw=新的FileWriter(文件);
BufferedWriter bw=新的BufferedWriter(fw);
int b=in.readInt();

对于(int i=1;i那么为什么不替换:

 throw new FileNotFoundException(f);


有问题吗?您想在代码中添加错误消息吗?您的问题是什么?我以前尝试过,但在客户端程序:java.net.SocketException:Connection reset中出现此错误时,它没有回答
output.println("file not exist");