01: package demo.concurrency;
02:
03: import java.io.*;
04:
05: import java.net.Socket.*;
06:
07: import java.net.*;
08:
09: public class ReferenceServer implements Runnable {
10:
11: private org.omg.CORBA.Object ref;
12:
13: private int port_num;
14:
15: public ReferenceServer(org.omg.CORBA.Object _ref, int port) {
16:
17: ref = _ref;
18:
19: port_num = port;
20:
21: }
22:
23: public void run() {
24:
25: Socket conn = null;
26:
27: PrintWriter quoteSend = null;
28:
29: try {
30:
31: ServerSocket server = new ServerSocket(port_num);
32:
33: for (;;) {
34:
35: conn = server.accept();
36:
37: quoteSend = new PrintWriter(conn.getOutputStream());
38:
39: quoteSend.print(ref);
40:
41: quoteSend.flush();
42:
43: try {
44:
45: Thread.currentThread().sleep(3000);
46:
47: } catch (InterruptedException e) {
48:
49: }
50:
51: quoteSend.close();
52:
53: conn.close();
54:
55: }
56:
57: } catch (UnknownHostException e) {
58:
59: e.printStackTrace();
60:
61: } catch (IOException ioe) {
62:
63: ioe.printStackTrace();
64:
65: } finally {
66:
67: if (quoteSend != null) {
68:
69: quoteSend.close();
70:
71: }
72:
73: if (conn != null) {
74:
75: try {
76:
77: conn.close();
78:
79: } catch (IOException ioe) {
80:
81: ioe.printStackTrace();
82:
83: }
84:
85: }
86:
87: }
88:
89: }
90:
91: }
|