📄 macceptorobserver.java
字号:
package net.jumperz.app.MGuardian;
import java.io.*;
import java.net.*;
import net.jumperz.util.*;
import net.jumperz.net.*;
public final class MAcceptorObserver
implements MObserver1
{
private MMultiAcceptor acceptor;
//-------------------------------------------------------------------------------------------------------
public MAcceptorObserver( MMultiAcceptor in_acceptor )
{
acceptor = in_acceptor;
}
//-------------------------------------------------------------------------------------------------------
public final void update()
{
int state = acceptor.getState();
if( state == MMultiAcceptor.ACCEPTED )
{
// check TCP connect flooding
Socket socket = acceptor.getSocket();
String addr = socket.getInetAddress().getHostAddress();
MAddressManager addressManager = MAddressManager.getInstance();
if( addressManager.isFull( addr ) )
{
MSimpleLogger.getInstance().log( addr + ":" + socket.getPort() + " Too many connections." );
try
{
socket.close();
}
catch( IOException e )
{
e.printStackTrace();
}
}
else
{
// start new session
MGuardianImpl.getInstance().startSession( socket );
}
}
else if( state == MMultiAcceptor.ERROR )
{
MGuardianImpl.getInstance().shutdown();
}
}
//-------------------------------------------------------------------------------------------------------
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -