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.