1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package examples.unix;
19
20 import java.io.BufferedReader;
21 import java.io.IOException;
22 import java.io.InputStreamReader;
23 import java.io.InterruptedIOException;
24 import java.net.InetAddress;
25 import java.net.SocketException;
26
27 import org.apache.commons.net.chargen.CharGenTCPClient;
28 import org.apache.commons.net.chargen.CharGenUDPClient;
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 public final class chargen
44 {
45
46 public static final void chargenTCP(String host) throws IOException
47 {
48 int lines = 100;
49 String line;
50 CharGenTCPClient client = new CharGenTCPClient();
51 BufferedReader chargenInput;
52
53
54 client.setDefaultTimeout(60000);
55 client.connect(host);
56 chargenInput =
57 new BufferedReader(new InputStreamReader(client.getInputStream()));
58
59
60
61
62 while (lines-- > 0)
63 {
64 if ((line = chargenInput.readLine()) == null) {
65 break;
66 }
67 System.out.println(line);
68 }
69
70 client.disconnect();
71 }
72
73 public static final void chargenUDP(String host) throws IOException
74 {
75 int packets = 50;
76 byte[] data;
77 InetAddress address;
78 CharGenUDPClient client;
79
80 address = InetAddress.getByName(host);
81 client = new CharGenUDPClient();
82
83 client.open();
84
85
86 client.setSoTimeout(5000);
87
88 while (packets-- > 0)
89 {
90 client.send(address);
91
92 try
93 {
94 data = client.receive();
95 }
96
97
98
99
100 catch (SocketException e)
101 {
102
103 System.err.println("SocketException: Timed out and dropped packet");
104 continue;
105 }
106 catch (InterruptedIOException e)
107 {
108
109 System.err.println(
110 "InterruptedIOException: Timed out and dropped packet");
111 continue;
112 }
113 System.out.write(data);
114 System.out.flush();
115 }
116
117 client.close();
118 }
119
120
121 public static void main(String[] args)
122 {
123
124 if (args.length == 1)
125 {
126 try
127 {
128 chargenTCP(args[0]);
129 }
130 catch (IOException e)
131 {
132 e.printStackTrace();
133 System.exit(1);
134 }
135 }
136 else if (args.length == 2 && args[0].equals("-udp"))
137 {
138 try
139 {
140 chargenUDP(args[1]);
141 }
142 catch (IOException e)
143 {
144 e.printStackTrace();
145 System.exit(1);
146 }
147 }
148 else
149 {
150 System.err.println("Usage: chargen [-udp] <hostname>");
151 System.exit(1);
152 }
153
154 }
155
156 }
157