blob: 4ee700254edc485c4490566245b3387b36b19614 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
/*************************************************
*
* = PACKAGE
* netsvcs.Time
*
* = FILENAME
* TS_Server_Handler.java
*
*@author Prashant Jain, Everett Anderson
*
*************************************************/
package netsvcs.Time;
import java.io.*;
import java.util.*;
import JACE.OS.*;
import JACE.Connection.*;
import JACE.Reactor.*;
/**
* <hr>
* <p><h2>DESCRIPTION</h2>
*
* <blockquote>Handles requests from a TSClerkHandler and sends
* back the current local time.</blockquote>
*
* @see netsvcs.Time.TSClerkHandler. netsvcs.Time.TSServerAcceptor
*/
public class TSServerHandler extends SvcHandler
{
// Constructor
public TSServerHandler ()
{
}
// Start this handler in its own thread
public int open (Object obj)
{
new Thread (this).start ();
return 0;
}
// Wait for messages from the Client and send the current local
// time back as a string.
public void run ()
{
int msgLen;
try
{
while (true)
{
// Use a new one each time since recv appends
StringBuffer msg = new StringBuffer ();
// Get the message from the client (blocks)
msgLen = this.peer ().recv (msg);
// Just keep waiting if there's a problem
if (msgLen <= 0)
break;
// Is the message for the right thing?
if (msg.toString().compareTo ("TIME_UPDATE_REQUEST") != 0) {
System.err.println("Unknown message: \"" + msg + '\"');
this.peer().send("\n"); // send so other side isn't stuck
break;
}
// Get local time
long time = System.currentTimeMillis();
// Send as a string
this.peer ().send ("" + time);
ACE.DEBUG("Time: " + new Date(time));
}
}
catch (NullPointerException e)
{
ACE.ERROR ("Connection reset by peer");
}
catch (IOException e)
{
ACE.ERROR (e);
}
finally
{
try
{
this.peer ().close ();
}
catch (IOException e)
{
}
}
}
}
|