module server; import hunt.net; import hunt.logging.ConsoleLogger; import hunt.net.codec.textline; import std.format; enum Host = "0.0.0.0"; enum Port = 8080; void main() { NetServerOptions options = new NetServerOptions(); // options.workerThreadSize = 8; NetServer server = NetUtil.createNetServer(options); server.setCodec(new TextLineCodec); // dfmt off server.setHandler(new class NetConnectionHandler { override void connectionOpened(Connection connection) { infof("Connection created: %s", connection.getRemoteAddress()); } override void connectionClosed(Connection connection) { infof("Connection closed: %s", connection.getRemoteAddress()); } override void messageReceived(Connection connection, Object message) { tracef("message type: %s", typeid(message).name); string str = format("data received: %s", message.toString()); tracef(str); connection.write(str); } override void exceptionCaught(Connection connection, Throwable t) { warning(t); } override void failedOpeningConnection(int connectionId, Throwable t) { warning(t); } override void failedAcceptingConnection(int connectionId, Throwable t) { warning(t); } }).listen(Host, Port); // dmft on }