com.enterprisedt.net.ftp
Class FTPControlSocket

java.lang.Object
  extended bycom.enterprisedt.net.ftp.FTPControlSocket

public class FTPControlSocket
extends java.lang.Object

Supports client-side FTP operations

Version:
$Revision: 1.24 $
Author:
Bruce Blackshaw

Field Summary
protected  boolean autoPassiveIPSubstitution
          If true, uses the original host IP if an internal IP address is returned by the server in PASV mode
static int CONTROL_PORT
          The default and standard control port number for FTP
protected  java.net.Socket controlSock
          The underlying socket.
static java.lang.String cvsId
          Revision control id
protected  java.io.BufferedReader reader
          The reader that reads control data from the control socket
protected  java.net.InetAddress remoteAddr
          The remote address to connect to
protected  java.io.Writer writer
          The write that writes to the control socket
 
Constructor Summary
protected FTPControlSocket(java.net.InetAddress remoteAddr, java.net.Socket controlSock, int timeout, java.lang.String encoding, FTPMessageListener messageListener)
          Constructs a new FTPControlSocket using the given Socket object.
 
Method Summary
protected  void initStreams()
          Obtain the reader/writer streams for this connection
 void logout()
          Quit this FTP session and clean up.
protected  FTPDataSocket newActiveDataSocket(int port)
          Constructs a new FTPDataSocket object (server mode) which will listen on the given port number.
protected  FTPDataSocket newPassiveDataSocket(java.lang.String remoteHost, int port)
          Constructs a new FTPDataSocket object (client mode) and connect to the given remote host and port number.
 FTPReply sendCommand(java.lang.String command)
          Send a command to the FTP server and return the server's reply as a structured reply object
 void setActivePortRange(int lowest, int highest)
          Set the port number range for active mode
protected  void setAutoPassiveIPSubstitution(boolean autoPassiveIPSubstitution)
          Set automatic substitution of the remote host IP on if in passive mode
protected  byte[] toByteArray(short value)
          Convert a short into a byte array
 FTPReply validateReply(FTPReply reply, java.lang.String expectedReplyCode)
          Validate the response the host has supplied against the expected reply.
 FTPReply validateReply(FTPReply reply, java.lang.String[] expectedReplyCodes)
          Validate the response the host has supplied against the expected reply.
 FTPReply validateReply(java.lang.String reply, java.lang.String[] expectedReplyCodes)
          Validate the response the host has supplied against the expected reply.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cvsId

public static java.lang.String cvsId
Revision control id


CONTROL_PORT

public static final int CONTROL_PORT
The default and standard control port number for FTP

See Also:
Constant Field Values

controlSock

protected java.net.Socket controlSock
The underlying socket.


writer

protected java.io.Writer writer
The write that writes to the control socket


reader

protected java.io.BufferedReader reader
The reader that reads control data from the control socket


remoteAddr

protected java.net.InetAddress remoteAddr
The remote address to connect to


autoPassiveIPSubstitution

protected boolean autoPassiveIPSubstitution
If true, uses the original host IP if an internal IP address is returned by the server in PASV mode

Constructor Detail

FTPControlSocket

protected FTPControlSocket(java.net.InetAddress remoteAddr,
                           java.net.Socket controlSock,
                           int timeout,
                           java.lang.String encoding,
                           FTPMessageListener messageListener)
                    throws java.io.IOException,
                           FTPException
Constructs a new FTPControlSocket using the given Socket object.

Parameters:
remoteAddr - the remote address
controlSock - Socket to be used.
timeout - Timeout to be used.
encoding - character encoding used for data
messageListener - listens for messages
Throws:
java.io.IOException - Thrown if no connection response could be read from the server.
FTPException - Thrown if the incorrect connection response was sent by the server.
Method Detail

setAutoPassiveIPSubstitution

protected void setAutoPassiveIPSubstitution(boolean autoPassiveIPSubstitution)
Set automatic substitution of the remote host IP on if in passive mode

Parameters:
autoPassiveIPSubstitution - true if set to on, false otherwise

initStreams

protected void initStreams()
                    throws java.io.IOException
Obtain the reader/writer streams for this connection

Throws:
java.io.IOException

logout

public void logout()
            throws java.io.IOException
Quit this FTP session and clean up.

Throws:
java.io.IOException

toByteArray

protected byte[] toByteArray(short value)
Convert a short into a byte array

Parameters:
value - value to convert
Returns:
a byte array

setActivePortRange

public void setActivePortRange(int lowest,
                               int highest)
Set the port number range for active mode

Parameters:
lowest - lowest port number in range
highest - highest port number in range

newPassiveDataSocket

protected FTPDataSocket newPassiveDataSocket(java.lang.String remoteHost,
                                             int port)
                                      throws java.io.IOException
Constructs a new FTPDataSocket object (client mode) and connect to the given remote host and port number.

Parameters:
remoteHost - Remote host to connect to.
port - Remote port to connect to.
Returns:
A new FTPDataSocket object (client mode) which is connected to the given server.
Throws:
java.io.IOException - Thrown if no TCP/IP connection could be made.

newActiveDataSocket

protected FTPDataSocket newActiveDataSocket(int port)
                                     throws java.io.IOException
Constructs a new FTPDataSocket object (server mode) which will listen on the given port number.

Parameters:
port - Remote port to listen on.
Returns:
A new FTPDataSocket object (server mode) which is configured to listen on the given port.
Throws:
java.io.IOException - Thrown if an error occurred when creating the socket.

sendCommand

public FTPReply sendCommand(java.lang.String command)
                     throws java.io.IOException
Send a command to the FTP server and return the server's reply as a structured reply object

Parameters:
command - command to send
Returns:
reply to the supplied command
Throws:
java.io.IOException

validateReply

public FTPReply validateReply(java.lang.String reply,
                              java.lang.String[] expectedReplyCodes)
                       throws java.io.IOException,
                              FTPException
Validate the response the host has supplied against the expected reply. If we get an unexpected reply we throw an exception, setting the message to that returned by the FTP server

Parameters:
reply - the entire reply string we received
expectedReplyCodes - array of expected replies
Returns:
an object encapsulating the server's reply
Throws:
java.io.IOException
FTPException

validateReply

public FTPReply validateReply(FTPReply reply,
                              java.lang.String[] expectedReplyCodes)
                       throws FTPException
Validate the response the host has supplied against the expected reply. If we get an unexpected reply we throw an exception, setting the message to that returned by the FTP server

Parameters:
reply - reply object
expectedReplyCodes - array of expected replies
Returns:
reply object
Throws:
FTPException

validateReply

public FTPReply validateReply(FTPReply reply,
                              java.lang.String expectedReplyCode)
                       throws FTPException
Validate the response the host has supplied against the expected reply. If we get an unexpected reply we throw an exception, setting the message to that returned by the FTP server

Parameters:
reply - reply object
expectedReplyCode - expected reply
Returns:
reply object
Throws:
FTPException


Copyright (c) 2001-2004 Enterprise Distributed Technologies Ltd. All Rights Reserved.