Handle Binary data with QuickServer using Eclipse IDE.
Let’s create main class to listen on specific port.
package com.quick;
import java.io.File;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;
import org.quickserver.net.AppException;
import org.quickserver.net.server.DataMode;
import org.quickserver.net.server.DataType;
import org.quickserver.net.server.QuickServer;
public class Server {
public static void main(String s[]) {
QuickServer quickServer = new QuickServer(“com.quick.CommandHandler”);
quickServer.setPort(2600);
quickServer.setTimeout(10000000);
quickServer.setName(“Quick Server”);
quickServer.setClientBinaryHandler(“com.quick.BinaryHandler”);
Logger logger = null;
FileHandler xmlLog = null;
FileHandler txtLog = null;
File log = new File(“./log/”);
if(!log.canRead()){
log.mkdir();
}
try {
DateFormat dateFormat = new SimpleDateFormat(“dd-MM-yyyy”);
logger = Logger.getLogger(“”);
logger.setLevel(Level.INFO);
xmlLog = new FileHandler(“log/QuickServer-“+dateFormat.format(new Date())+”.xml”,true);
logger.addHandler(xmlLog);
logger = Logger.getLogger(“com.quick”);
logger.setLevel(Level.INFO);
txtLog = new FileHandler(“log/QuickServer-“+dateFormat.format(new Date())+”.log”,true);
txtLog.setFormatter(new SimpleFormatter());
logger.addHandler(txtLog);
quickServer.setAppLogger(logger);
}
catch(IOException e) {
System.err.println(“Could not create xmlLog FileHandler : “+e);
}
try {
quickServer.setDefaultDataMode(DataMode.BINARY, DataType.IN);
quickServer.startServer();
}
catch(AppException e) {
System.err.println(“Error in server : “+e);
}
catch (IOException e) {
System.err.println(“Error in server : “+e);
}
}
}
Now create the class BinaryHandler that will be used to handler the binary data.
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.SocketTimeoutException;
import java.util.logging.Logger;
import org.quickserver.net.server.ClientBinaryHandler;
import org.quickserver.net.server.ClientHandler;
import org.quickserver.net.server.DataMode;
import org.quickserver.net.server.DataType;
public class BinaryHandler implements ClientBinaryHandler{
private final static Logger logger = Logger.getLogger(BinaryHandler.class.getName());
static boolean pageLoad = Boolean.TRUE;
static Socket client;
@Override
public void handleBinary(ClientHandler handler, byte[] command) throws SocketTimeoutException, IOException {
byte bytes[] = command;
handler.setDataMode(DataMode.BINARY, DataType.OUT);
handler.sendClientBinary(bytes);
}
handleBinary method will listen binary data on 2600 port.