diff --git a/src/main/java/ru/molokoin/Connection.java b/src/main/java/ru/molokoin/Connection.java new file mode 100644 index 0000000..c630449 --- /dev/null +++ b/src/main/java/ru/molokoin/Connection.java @@ -0,0 +1,21 @@ +package ru.molokoin; + +import java.nio.ByteBuffer; +import java.nio.channels.SocketChannel; + +public class Connection { + public SocketChannel accepted = null; + public Connection(){} + public Connection(SocketChannel accepted){ + this.accepted = accepted; + } + //читаем из подключения + public void read(ByteBuffer byteBuffer){ + // + } + //пишем в подключение + public void write(ByteBuffer byteBuffer){ + // + } + +} diff --git a/src/main/java/ru/molokoin/ServerLauncher.java b/src/main/java/ru/molokoin/ServerLauncher.java new file mode 100644 index 0000000..d9a550f --- /dev/null +++ b/src/main/java/ru/molokoin/ServerLauncher.java @@ -0,0 +1,38 @@ +package ru.molokoin; + +import java.io.IOException; +import java.net.InetSocketAddress; +import java.nio.channels.ServerSocketChannel; +import java.nio.channels.SocketChannel; +import java.util.Queue; + +/** + * Поток в котором запускается сервер в режим ожидания подключений. + * Подключения ставятся в очередь + */ +public class ServerLauncher implements Runnable{ + private int tcpPort = 0; + private ServerSocketChannel channel = null; + private Queue connectionQueue = null; + + @Override + public void run() { + try{ + this.channel = ServerSocketChannel.open(); + this.channel.bind(new InetSocketAddress(tcpPort)); + } catch(IOException e){ + e.printStackTrace(); + return; + } + while(true){ + try{ + SocketChannel accepted = this.channel.accept(); + System.out.println("Socket accepted: " + accepted); + //todo check if the queue can even accept more sockets. + this.connectionQueue.add(new Connection(accepted)); + } catch(IOException e){ + e.printStackTrace(); + } + } + } +} diff --git a/target/classes/ru/molokoin/Connection.class b/target/classes/ru/molokoin/Connection.class new file mode 100644 index 0000000..33c8a54 Binary files /dev/null and b/target/classes/ru/molokoin/Connection.class differ diff --git a/target/classes/ru/molokoin/ExchangeServer.class b/target/classes/ru/molokoin/ExchangeServer.class index 2308d07..d71d0c3 100644 Binary files a/target/classes/ru/molokoin/ExchangeServer.class and b/target/classes/ru/molokoin/ExchangeServer.class differ diff --git a/target/classes/ru/molokoin/ServerLauncher.class b/target/classes/ru/molokoin/ServerLauncher.class new file mode 100644 index 0000000..92ad0c1 Binary files /dev/null and b/target/classes/ru/molokoin/ServerLauncher.class differ