Check the connection to the FTP server correctly

I open the connection to the FTP server at the beginning of my program.

Before performing operations on the server, I want to check whether the connection was successfully established. The simplest quick manner, so if the connection is gone, I will try to connect again.

I used this code for this:

private boolean checkConnection() { try { boolean success = ftpClient.login(user_name, password); if(success) return true; else return false; } } 

But this method throws a NullPointer exception when the connection has been closed.

I can check the connection with ftpClient.connect(server, port); but it is like trying to connect again and again.

What is the way to test the connection?

+4
source share
2 answers

Trying to send a simple sendNoOp() and checking the response can be a good way to easily check the connection:

 private boolean checkConnectionWithOneRetry() { try { // Sends a NOOP command to the FTP server. boolean answer = ftpClient.sendNoOp(); if(answer) return true; else { System.out.println("Server connection failed!"); boolean success = reconnect(); if(success) { System.out.println("Reconnect attampt have succeeded!"); return true; } else { System.out.println("Reconnect attampt failed!"); return false; } } } catch (FTPConnectionClosedException e) { System.out.println("Server connection is closed!"); boolean recon = reconnect(); if(recon) { System.out.println("Reconnect attampt have succeeded!"); return true; } else { System.out.println("Reconnect attampt have failed!"); return false; } } catch (IOException e) { System.out.println("Server connection failed!"); boolean recon = reconnect(); if(recon) { System.out.println("Reconnect attampt have succeeded!"); return true; } else { System.out.println("Reconnect attampt have failed!"); return false; } } catch (NullPointerException e) { System.out.println("Server connection is closed!"); boolean recon = reconnect(); if(recon) { System.out.println("Reconnect attampt have succeeded!"); return true; } else { System.out.println("Reconnect attampt have failed!"); return false; } } } 
+8
source
 private FTPClient ftp = null; private void connect() { ftp = new FTPClient(); try { ftp.connect("Server",port); boolean login = ftp.login("username", "password"); System.out.println(" login "+ login ); } catch (FTPConnectionClosedException e) { System.err.println("ERROR :: FTP Server Unreachable"); sleep(); connect(); } catch (SocketException e) { System.err.println("ERROR :: FTP Server Unreachable"); sleep(); connect(); } catch (IOException e) { System.err.println("ERROR :: FTP Server Unreachable"); sleep(); connect(); } } public void sleep(){ try { Thread.sleep(10000); } catch (InterruptedException e) { e.printStackTrace(); } } 
+2
source

All Articles