Project

General

Profile

Revision 12

View differences:

multicastchannels/BackupChannel.java
1
package multicastchannels;
2
import server.Server;
3
import threads.messageManagement;
4

  
5
import java.io.IOException;
6
import java.net.*;
7
import java.util.Arrays;
8

  
9
public class BackupChannel implements Runnable {
10
    private String INET_ADDR;
11
    private int PORT;
12
    private InetAddress address;
13

  
14
    public BackupChannel(String adr, int args) {
15
        this.INET_ADDR = adr;
16
        this.PORT = args;
17
    }
18

  
19
    public void sendMessage(byte[] message) throws IOException {
20
        DatagramSocket socket = new DatagramSocket();
21
        InetAddress group = InetAddress.getByName(INET_ADDR);
22
        DatagramPacket packet = new DatagramPacket(message, message.length, group, PORT);
23
        socket.send(packet);
24
        socket.close();
25
    }
26

  
27

  
28
    public void receiveMessage(String ip, int port) throws IOException {
29
        byte[] buffer = new byte[1024];
30
        MulticastSocket socket = new MulticastSocket(PORT);
31
        InetAddress group = InetAddress.getByName(INET_ADDR);
32
        socket.joinGroup(group);
33

  
34
        System.out.println("Waiting for multicast message...");
35
        DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
36
        socket.receive(packet);
37
        String msg = new String(packet.getData(), packet.getOffset(), packet.getLength());
38
        System.out.println("Multicast message received " + msg);
39
      
40
         byte[] bufferCopy = Arrays.copyOf(buffer, packet.getLength());
41
         Server.getThreadLauncher().execute(new messageManagement(bufferCopy));
42

  
43
        socket.leaveGroup(group);
44
        socket.close();
45
    }
46

  
47
    @Override
48
    public void run() {
49
        try {
50
            receiveMessage(INET_ADDR, PORT);
51
        } catch (IOException ex) {
52
            ex.printStackTrace();
53
        }
54
    }
55
}
multicastchannels/ControlChannel.java
1
package multicastchannels;
2

  
3

  
4
import server.Server;
5
import threads.messageManagement;
6

  
7
import java.io.IOException;
8
import java.net.*;
9
import java.util.Arrays;
10

  
11
public class ControlChannel implements Runnable {
12
    private String INET_ADDR;
13
    private int PORT;
14
    private InetAddress address;
15

  
16
    public ControlChannel(String adr, int args) {
17
        this.INET_ADDR = adr;
18
        this.PORT = args;
19
    }
20

  
21
    public void sendMessage(byte[] message) throws IOException {
22
        DatagramSocket socket = new DatagramSocket();
23
        InetAddress group = InetAddress.getByName(INET_ADDR);
24
        DatagramPacket packet = new DatagramPacket(message, message.length, group, PORT);
25
        socket.send(packet);
26
        socket.close();
27
    }
28

  
29
    public void receiveMessage(String ip, int port) throws IOException {
30
        byte[] buffer = new byte[1024];
31
        MulticastSocket socket = new MulticastSocket(PORT);
32
        InetAddress group = InetAddress.getByName(INET_ADDR);
33
        socket.joinGroup(group);
34

  
35
        System.out.println("Waiting for multicast message...");
36
        DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
37
        socket.receive(packet);
38
        String msg = new String(packet.getData(), packet.getOffset(), packet.getLength());
39
        System.out.println("Multicast  message received " + msg);
40

  
41
        byte[] bufferCopy = Arrays.copyOf(buffer, packet.getLength());
42
        Server.getThreadLauncher().execute(new messageManagement(bufferCopy));
43

  
44

  
45
        socket.leaveGroup(group);
46
        socket.close();
47
    }
48

  
49
    @Override
50
    public void run() {
51
        try {
52
            receiveMessage(INET_ADDR, PORT);
53
        } catch (IOException ex) {
54
            ex.printStackTrace();
55
        }
56
    }
57
}
multicastchannels/RemoteChannel.java
1
package multicastchannels;
2

  
3

  
4
import server.Server;
5
import threads.messageManagement;
6

  
7
import java.io.IOException;
8
import java.net.*;
9
import java.util.Arrays;
10

  
11
public class RemoteChannel implements Runnable {
12
    private String INET_ADDR;
13
    private int PORT;
14
    private InetAddress address;
15

  
16
    public RemoteChannel(String adr, int port) {
17
        this.INET_ADDR = adr;
18
        this.PORT = port;
19
    }
20

  
21
    public void sendMessage(byte[] message) throws IOException {
22
        DatagramSocket socket = new DatagramSocket();
23
        InetAddress group = InetAddress.getByName(INET_ADDR);
24
        DatagramPacket packet = new DatagramPacket(message, message.length, group, PORT);
25
        socket.send(packet);
26
        socket.close();
27
    }
28
    public void receiveMessage(String ip, int port) throws IOException {
29
        byte[] buffer = new byte[1024];
30
        MulticastSocket socket = new MulticastSocket(PORT);
31
        InetAddress group = InetAddress.getByName(INET_ADDR);
32
        socket.joinGroup(group);
33

  
34
        System.out.println("Waiting for multicast message...");
35
        DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
36
        socket.receive(packet);
37

  
38
        String msg = new String(packet.getData(), packet.getOffset(), packet.getLength());
39
        System.out.println("Multicast message received " + msg);
40

  
41
        byte[] bufferCopy = Arrays.copyOf(buffer, packet.getLength());
42
        Server.getThreadLauncher().execute(new messageManagement(bufferCopy));
43

  
44

  
45

  
46
        socket.leaveGroup(group);
47
        socket.close();
48
    }
49

  
50
    @Override
51
    public void run() {
52
        try {
53
            receiveMessage(INET_ADDR, PORT);
54
        } catch (IOException ex) {
55
            ex.printStackTrace();
56
        }
57
    }
58
}

Also available in: Unified diff