2121import org .menacheri .util .NettyUtils ;
2222import org .menacheri .zombie .domain .IAM ;
2323
24-
2524public class ZombieHandler extends SimpleChannelUpstreamHandler
2625{
2726 private static final IAM iam = IAM .ZOMBIE ;
2827 private static final Map <InetSocketAddress , DatagramChannel > clients = new HashMap <InetSocketAddress , DatagramChannel >();
2928 private UDPClient udpClient ;
30-
29+
3130 public ZombieHandler ()
3231 {
33- udpClient = new UDPClient (this ,iam ,"255.255.255.255" ,8090 ,DefenderHandler .getService ());
32+ udpClient = new UDPClient (this , iam , "255.255.255.255" , 18090 ,
33+ DefenderHandler .getService ());
3434 }
35+
3536 @ Override
3637 public void messageReceived (ChannelHandlerContext ctx , MessageEvent e )
3738 throws Exception
3839 {
3940 Object message = e .getMessage ();
40- if (message instanceof IEvent )
41+ if (message instanceof IEvent )
4142 {
42- IEvent event = (IEvent )message ;
43- if (Events .START == event .getType ())
43+ IEvent event = (IEvent ) message ;
44+ if (Events .START == event .getType ())
4445 {
4546 loginUDP (e .getChannel ());
46- WriteByte write = new WriteByte (e .getChannel (),null , IAM .ZOMBIE );
47- DefenderHandler .getService ().scheduleAtFixedRate (write ,2000l ,500l ,TimeUnit .MILLISECONDS );
47+ WriteByte write = new WriteByte (e .getChannel (), null ,
48+ IAM .ZOMBIE );
49+ DefenderHandler .getService ().scheduleAtFixedRate (write , 2000l ,
50+ 500l , TimeUnit .MILLISECONDS );
4851 }
49- else if (Events .LOG_IN_SUCCESS == event .getType ())
52+ else if (Events .LOG_IN_SUCCESS == event .getType ())
5053 {
5154 connectUDP (event );
5255 }
53- else if (Events .SERVER_OUT_UDP == event .getType ())
56+ else if (Events .SERVER_OUT_UDP == event .getType ())
5457 {
55- ChannelBuffer buffer = (ChannelBuffer )event .getSource ();
56- if (buffer .readableBytes () >= 4 )
58+ ChannelBuffer buffer = (ChannelBuffer ) event .getSource ();
59+ if (buffer .readableBytes () >= 4 )
5760 {
58- System .out .println ("UDP event from server in ZombieHandler: " + buffer .readInt ());
61+ System .out
62+ .println ("UDP event from server in ZombieHandler: "
63+ + buffer .readInt ());
5964 }
6065 else
6166 {
62- System .out .println ("UDP Event does not have expected data in ZombieHandler" );
67+ System .out
68+ .println ("UDP Event does not have expected data in ZombieHandler" );
6369 }
6470 }
6571 else
6672 {
6773 super .messageReceived (ctx , e );
6874 }
6975 }
70-
76+
7177 }
72-
78+
7379 public void loginUDP (Channel channel ) throws UnknownHostException
7480 {
75- ChannelBuffer opCode = NettyUtils .createBufferForOpcode (Events .LOG_IN_UDP );
81+ ChannelBuffer opCode = NettyUtils
82+ .createBufferForOpcode (Events .LOG_IN_UDP );
7683 final DatagramChannel c = udpClient .createDatagramChannel ();
7784 final InetSocketAddress localAddress = udpClient .getLocalAddress (c );
78- ChannelBuffer hostName = NettyUtils .writeString (localAddress .getHostName ());
85+ ChannelBuffer hostName = NettyUtils .writeString (localAddress
86+ .getHostName ());
7987 ChannelBuffer portNum = ChannelBuffers .buffer (4 );
8088 portNum .writeInt (localAddress .getPort ());
81- ChannelBuffer login = ChannelBuffers .wrappedBuffer (opCode ,hostName ,portNum );
89+ ChannelBuffer login = ChannelBuffers .wrappedBuffer (opCode , hostName ,
90+ portNum );
8291 ChannelFuture loginFuture = channel .write (login );
8392 loginFuture .addListener (new ChannelFutureListener ()
8493 {
8594 @ Override
86- public void operationComplete (ChannelFuture future ) throws Exception
95+ public void operationComplete (ChannelFuture future )
96+ throws Exception
8797 {
88- if (future .isSuccess ())
98+ if (future .isSuccess ())
8999 {
90100 clients .put (localAddress , c );
91101 }
92102 else
93103 {
94- System .out .println ("Sending UDP login from ZombieHandler was a failure." );
104+ System .out
105+ .println ("Sending UDP login from ZombieHandler was a failure." );
95106 }
96107 }
97108 });
98109 loginFuture .awaitUninterruptibly ();
99110 }
100-
111+
101112 public void connectUDP (IEvent event )
102113 {
103- ChannelBuffer buffer = (ChannelBuffer )event .getSource ();
114+ ChannelBuffer buffer = (ChannelBuffer ) event .getSource ();
104115 InetSocketAddress address = NettyUtils .readSocketAddress (buffer );
116+ System .out .println ("UDP address for connect UDP: " + address );
105117 final DatagramChannel c = clients .get (address );
106- if ( null != udpClient )
118+ if (( udpClient != null ) && ( c != null ) )
107119 {
108120 // Connect the UDP
109121 System .out .println ("Going to connect UDP in ZombieHandler" );
@@ -118,7 +130,7 @@ public void run()
118130 DefenderHandler .getService ().submit (runnable );
119131 }
120132 }
121-
133+
122134 @ Override
123135 public void exceptionCaught (ChannelHandlerContext ctx , ExceptionEvent e )
124136 throws Exception
0 commit comments