import java.io.IOException;
import java.net.Socket;
-
-import be.nikiroo.utils.Version;
+import java.net.UnknownHostException;
/**
* Base class used for the client basic handling.
*/
protected ConnectAction action;
- /**
- * Create a new {@link ConnectActionClient} with the current application
- * version (see {@link Version#getCurrentVersion()}) as the client version.
- *
- * @param s
- * the socket to bind to
- */
- public ConnectActionClient(Socket s) {
- this(s, Version.getCurrentVersion());
- }
-
- /**
- * Create a new {@link ConnectActionClient} with the current application
- * version (see {@link Version#getCurrentVersion()}) as the client version.
- *
- * @param host
- * the host to bind to
- * @param port
- * the port to bind to
- * @param ssl
- * TRUE for an SSL connection, FALSE for plain text
- *
- * @throws IOException
- * in case of I/O error when creating the socket
- */
- public ConnectActionClient(String host, int port, boolean ssl)
- throws IOException {
- this(Server.createSocket(host, port, ssl), Version.getCurrentVersion());
- }
-
/**
* Create a new {@link ConnectActionClient}.
*
* the host to bind to
* @param port
* the port to bind to
- * @param ssl
- * TRUE for an SSL connection, FALSE for plain text
- * @param version
- * the client version
+ * @param key
+ * an optional key to encrypt all the communications (if NULL,
+ * everything will be sent in clear text)
*
* @throws IOException
- * in case of I/O error when creating the socket
+ * in case of I/O error
+ * @throws UnknownHostException
+ * if the host is not known
+ * @throws IllegalArgumentException
+ * if the port parameter is outside the specified range of valid
+ * port values, which is between 0 and 65535, inclusive
*/
- public ConnectActionClient(String host, int port, boolean ssl,
- Version version) throws IOException {
- this(Server.createSocket(host, port, ssl), version);
+ public ConnectActionClient(String host, int port, String key)
+ throws IOException {
+ this(new Socket(host, port), key);
}
/**
*
* @param s
* the socket to bind to
- * @param version
- * the client version
+ * @param key
+ * an optional key to encrypt all the communications (if NULL,
+ * everything will be sent in clear text)
*/
- public ConnectActionClient(Socket s, Version version) {
- action = new ConnectAction(s, false, version) {
+ public ConnectActionClient(Socket s, String key) {
+ action = new ConnectAction(s, false, key) {
@Override
- protected void action(Version serverVersion) throws Exception {
- ConnectActionClient.this.action(serverVersion);
+ protected void action() throws Exception {
+ ConnectActionClient.this.action();
}
@Override
protected void onError(Exception e) {
ConnectActionClient.this.onError(e);
}
-
- @Override
- protected Version negotiateVersion(Version clientVersion) {
- new Exception("Should never be called on a client")
- .printStackTrace();
- return null;
- }
};
}
/**
* Method that will be called when an action is performed on the client.
*
- * @param serverVersion
- * the server version
- *
* @throws Exception
* in case of I/O error
*/
@SuppressWarnings("unused")
- public void action(Version serverVersion) throws Exception {
+ public void action() throws Exception {
}
/**