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 java.net.InetSocketAddress;
19 import java.util.concurrent.Executors;
20
21 import org.jboss.netty.bootstrap.ServerBootstrap;
22 import org.jboss.netty.channel.ChannelPipeline;
23 import org.jboss.netty.channel.ChannelPipelineFactory;
24 import org.jboss.netty.channel.Channels;
25 import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;
26
27
28
29
30 public class EchoServer {
31
32 private final int port;
33
34 public EchoServer(int port) {
35 this.port = port;
36 }
37
38 public void run() {
39
40 ServerBootstrap bootstrap = new ServerBootstrap(
41 new NioServerSocketChannelFactory(
42 Executors.newCachedThreadPool(),
43 Executors.newCachedThreadPool()));
44
45
46 bootstrap.setPipelineFactory(new ChannelPipelineFactory() {
47 public ChannelPipeline getPipeline() throws Exception {
48 return Channels.pipeline(new EchoServerHandler());
49 }
50 });
51
52
53 bootstrap.bind(new InetSocketAddress(port));
54 }
55
56 public static void main(String[] args) throws Exception {
57 int port;
58 if (args.length > 0) {
59 port = Integer.parseInt(args[0]);
60 } else {
61 port = 8080;
62 }
63 new EchoServer(port).run();
64 }
65 }