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