summaryrefslogtreecommitdiff
path: root/java/tests/Connection/ServerHandler.java
blob: d46a6e1e125632644f247408b70f79318bc1622b (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
// ============================================================================
//
// = PACKAGE
//    tests.Connection
// 
// = FILENAME
//    ServerHandler.java
//
// = AUTHOR
//    Prashant Jain
// 
// ============================================================================
package tests.Connection;

import java.io.*;
import java.net.*;
import ACE.OS.*;
import ACE.Connection.*;

public class ServerHandler extends SvcHandler
{
  public ServerHandler ()
    {
    }
  
  public int open (Object obj)
  {
    new Thread (this).start ();
    return 0;
  }

  public void run ()
    {
      int msg_len;
      System.out.println ("Waiting for messages...");
      try
	{
	  while (true)
	    {
	      StringBuffer msg = new StringBuffer ();
	      msg_len = this.peer ().recv (msg);
	      if (msg_len == 0)
		break;
	      System.out.println ("Received: " + msg);
	      this.peer ().send (new StringBuffer ("Got it!"));
	    }
	}
      catch (NullPointerException e)
	{
	  ACE.ERROR ("connection reset by peer");
	}
      catch (IOException e)
	{
	  ACE.ERROR (e);
	}
      finally
	{
	  try 
	    {
	      this.peer ().close ();
	    }
	  catch (IOException e)
	    {
	    }
	}
      
    }
}