blob: e91fb2e1e52dc9b2962cd92cd638306ec63fcf2a (
plain) (
tree)
|
|
package org.openslx.filetransfer;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.security.KeyManagementException;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLServerSocket;
import javax.net.ssl.SSLServerSocketFactory;
import javax.net.ssl.SSLSocket;
public class Listener {
private IncomingEvent incomingEvent;
/*
private static String pathToKeyStore =
"/home/bjoern/javadev/DataTransfer/mySrvKeyStore.jks";
*/
private SSLContext context;
private int port;
/***********************************************************************//**
* Constructor for class Listener, which gets an instance of IncomingEvent.
* @param e
*/
public Listener(IncomingEvent e, SSLContext context, int port) {
this.incomingEvent = e;
this.context = context;
this.port = port;
/*
char[] passphrase = "test123".toCharArray();
KeyStore keystore = KeyStore.getInstance("JKS");
keystore.load(new FileInputStream(pathToKeyStore), passphrase);
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(keystore, passphrase);
context = SSLContext.getInstance("SSLv3");
KeyManager[] keyManagers = kmf.getKeyManagers();
context.init(keyManagers, null, null);
*/
}
/***********************************************************************//**
* Method listen, should run from Master Server. Listen for incoming
* connection, and start Downloader or Uploader.
* @throws Exception
*/
public void listen() throws Exception {
SSLServerSocketFactory sslServerSocketFactory = context.getServerSocketFactory();
SSLServerSocket welcomeSocket =
(SSLServerSocket) sslServerSocketFactory.createServerSocket(this.port);
while (true) {
SSLSocket connectionSocket = (SSLSocket) welcomeSocket.accept();
byte[] b = new byte[1];
int length = connectionSocket.getInputStream().read(b);
System.out.println(length);
// Ascii - Code: 'U' = 85 ; 'D' = 68.
if (b[0] == 85) {
System.out.println("U erkannt --> Downloader starten");
// --> start Downloader(socket).
Downloader d = new Downloader(connectionSocket);
incomingEvent.incomingDownloader(d);
}
else if (b[0] == 68) {
System.out.println("D erkannt --> Uploader starten");
// --> start Uploader(socket).
Uploader u = new Uploader(connectionSocket);
incomingEvent.incomingUploader(u);
}
else {
System.out.println("Müll empfangen");
connectionSocket.close();
}
}
}
}
|