ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/experimental/server/XMLReader/UDPReader.java
(Generate patch)

Comparing experimental/server/XMLReader/UDPReader.java (file contents):
Revision 1.1 by pjm2, Fri Nov 17 11:23:19 2000 UTC vs.
Revision 1.9 by pjm2, Tue Nov 21 10:27:24 2000 UTC

# Line 3 | Line 3 | import java.net.*;
3   import java.util.*;
4  
5   // This class contains the main method to be run by
6 < // the filter children.  It harvests UDP traffic
6 > // the filter children.  It harvests UDP traffic.
7   //
8   //
9 < public class UDPReader {
9 > public class UDPReader extends Thread{
10  
11 <    public static void main(String[] args) throws IOException {
11 >    // It is normal to use this constructor in preference
12 >    // to any other in this class.
13 >    public UDPReader(int port, Logger logger){
14 >        this.logger = logger;
15 >        this.port = port;
16 >    }
17 >    
18 >    public UDPReader(Logger logger){
19 >        this(4589, logger);
20 >    }
21  
22 <        DatagramSocket socket = new DatagramSocket(4589);
22 >    public void receiveXML(String xml){
23 >        UDPReaderThread t = new UDPReaderThread();
24 >        t.run(xml);
25 >    }
26  
27 +    public void run() {
28 +
29 +        DatagramSocket socket = null;
30          try {
31 <            byte[] buf = new byte[1024];
17 <                // receive request
18 <            DatagramPacket packet = new DatagramPacket(buf, buf.length);
19 <            socket.receive(packet);
20 <            String dataIn = new String(packet.getData());
21 <            System.out.println("Received: " + dataIn);
31 >            socket = new DatagramSocket(port);
32          }
33 <        catch (IOException e) {
34 <            System.out.println("An exception occured!");
35 <            e.printStackTrace();
33 >        catch (BindException e){
34 >            logger.write(this.toString(), Logger.SYSMSG, "Could not start the UDPReader thread on port "+port+" as this port was already in use.");
35 >            return;
36          }
37 +        catch (Exception e){
38 +            logger.write(this.toString(), Logger.SYSMSG, "Could not start the UDPReader thread on port "+port+".");
39 +            return;
40 +        }
41 +        
42 +        logger.write(this.toString(), Logger.SYSMSG, "UDPReader thread ready and listening for UDP packets on port "+port);
43 +
44 +        byte[] buf;
45 +        
46 +        boolean running = true;
47 +        while (running){
48 +            try {
49 +                buf = new byte[packetSizeLimit];
50 +                // receive request
51 +                DatagramPacket packet = new DatagramPacket(buf, buf.length);
52 +                socket.receive(packet);
53 +                UDPReaderThread t = new UDPReaderThread();
54 +                t.run(packet);
55 +            }
56 +            catch (IOException e) {
57 +                logger.write(this.toString(), Logger.SYSMSG, "The UDPReader thread has been shut down as an exception occured: "+e);
58 +                return;
59 +            }
60 +        }
61          socket.close();
62      }
63 +    
64 +    
65 +    Logger logger;
66 +    int port;
67 +    
68 +    final int packetSizeLimit = 8192;
69 +    
70   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines