10
10
import onjava .*;
11
11
12
12
public class ChatterClient extends Thread {
13
- // Can listen & send on the same socket:
14
- private DatagramSocket s ;
15
13
private InetAddress hostAddress ;
16
14
private byte [] buf = new byte [1000 ];
17
15
private DatagramPacket dp =
@@ -21,21 +19,19 @@ public class ChatterClient extends Thread {
21
19
public ChatterClient (int identifier ) {
22
20
id = identifier ;
23
21
try {
24
- // Auto-assign port number:
25
- s = new DatagramSocket ();
26
22
hostAddress =
27
23
InetAddress .getByName ("localhost" );
28
24
} catch (UnknownHostException e ) {
29
25
System .err .println ("Cannot find host" );
30
26
System .exit (1 );
31
- } catch (SocketException e ) {
32
- System .err .println ("Can't open socket" );
33
- throw new RuntimeException (e );
34
27
}
35
28
System .out .println ("ChatterClient starting" );
36
29
}
37
30
public void sendAndEcho (String msg ) {
38
- try {
31
+ try (
32
+ // Auto-assign port number:
33
+ DatagramSocket s = new DatagramSocket ();
34
+ ) {
39
35
// Make and send a datagram:
40
36
s .send (Dgram .toDatagram (
41
37
msg , hostAddress , ChatterServer .INPORT ));
@@ -48,6 +44,9 @@ public void sendAndEcho(String msg) {
48
44
dp .getPort () + ": " +
49
45
Dgram .toString (dp );
50
46
System .out .println (rcvd );
47
+ } catch (SocketException e ) {
48
+ System .err .println ("Can't open socket" );
49
+ throw new RuntimeException (e );
51
50
} catch (IOException e ) {
52
51
throw new RuntimeException (e );
53
52
}
0 commit comments