This repository has been archived on 2021-12-05. You can view files and clone it, but cannot push or open issues or pull requests.
java-nio-server/src/main/java/com/jenkov/nioserver/Server.java

47 lines
1.4 KiB
Java

package com.jenkov.nioserver;
import java.io.IOException;
import java.util.Queue;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
/**
* Created by jjenkov on 24-10-2015.
*/
public class Server {
private SocketAccepter socketAccepter = null;
private SocketProcessor socketProcessor = null;
private int tcpPort = 0;
private IMessageReaderFactory messageReaderFactory = null;
private IMessageProcessor messageProcessor = null;
public Server(int tcpPort, IMessageReaderFactory messageReaderFactory, IMessageProcessor messageProcessor) {
this.tcpPort = tcpPort;
this.messageReaderFactory = messageReaderFactory;
this.messageProcessor = messageProcessor;
}
public void start() throws IOException {
Queue socketQueue = new ArrayBlockingQueue(1024); //move 1024 to ServerConfig
this.socketAccepter = new SocketAccepter(tcpPort, socketQueue);
MessageBuffer readBuffer = new MessageBuffer();
MessageBuffer writeBuffer = new MessageBuffer();
this.socketProcessor = new SocketProcessor(socketQueue, readBuffer, writeBuffer, this.messageReaderFactory, this.messageProcessor);
Thread accepterThread = new Thread(this.socketAccepter);
Thread processorThread = new Thread(this.socketProcessor);
accepterThread.start();
processorThread.start();
}
}