1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.jboss.netty.example.echo;
17
18 import org.jboss.netty.buffer.ChannelBuffer;
19 import org.jboss.netty.channel.ChannelHandlerContext;
20 import org.jboss.netty.channel.ExceptionEvent;
21 import org.jboss.netty.channel.MessageEvent;
22 import org.jboss.netty.channel.SimpleChannelUpstreamHandler;
23
24 import java.util.concurrent.atomic.AtomicLong;
25
26
27
28
29 public class EchoServerHandler extends SimpleChannelUpstreamHandler {
30
31 private final AtomicLong transferredBytes = new AtomicLong();
32
33 public long getTransferredBytes() {
34 return transferredBytes.get();
35 }
36
37 @Override
38 public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) {
39
40 transferredBytes.addAndGet(((ChannelBuffer) e.getMessage()).readableBytes());
41 e.getChannel().write(e.getMessage());
42 }
43
44 @Override
45 public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) {
46
47 e.getCause().printStackTrace();
48 e.getChannel().close();
49 }
50 }