in core/src/main/java/org/apache/mina/transport/nio/NioUdpServer.java [267:316]
private NioUdpSession createSession(SocketAddress remoteAddress, DatagramChannel datagramChannel)
throws IOException {
LOG.debug("create session");
UdpSessionConfig config = getSessionConfig();
SocketAddress localAddress = new InetSocketAddress(datagramChannel.socket().getLocalAddress(), datagramChannel
.socket().getLocalPort());
final NioUdpSession session = new NioUdpSession(this, idleChecker, datagramChannel, localAddress, remoteAddress);
// apply idle configuration
session.getConfig().setIdleTimeInMillis(IdleStatus.READ_IDLE, config.getIdleTimeInMillis(IdleStatus.READ_IDLE));
session.getConfig().setIdleTimeInMillis(IdleStatus.WRITE_IDLE,
config.getIdleTimeInMillis(IdleStatus.WRITE_IDLE));
// apply the default service socket configuration
Boolean reuseAddress = config.isReuseAddress();
if (reuseAddress != null) {
session.getConfig().setReuseAddress(reuseAddress);
}
Integer readBufferSize = config.getReadBufferSize();
if (readBufferSize != null) {
session.getConfig().setReadBufferSize(readBufferSize);
}
Integer sendBufferSize = config.getSendBufferSize();
if (sendBufferSize != null) {
session.getConfig().setSendBufferSize(sendBufferSize);
}
Integer trafficClass = config.getTrafficClass();
if (trafficClass != null) {
session.getConfig().setTrafficClass(trafficClass);
}
// Manage the Idle status
idleChecker.sessionRead(session, System.currentTimeMillis());
idleChecker.sessionWritten(session, System.currentTimeMillis());
sessions.put(remoteAddress, session);
// Inform the handler that the session has been created
session.setConnected();
return session;
}