//Send primitive to send data to the multicast(point to point) addresses import java.io.*; import java.net.*; import java.util.*; class Send extends Thread { private int group_id; private DatagramSocket socket; private MulticastSocket msocket; private String[] address; private String unicast_address; private int unicast_port; private int[] port; private int bindPort,tempPort; private InetAddress multiip; private int multiport; private ObjectOutputStream os; private ByteArrayOutputStream byteStream; private DataCT dct; Send(int bindPort, DataCT dct) { // byteStream = new ByteArrayOutputStream(1000); try { this.dct=dct; socket = new DatagramSocket(bindPort); multiip=InetAddress.getByName("localhost"); //System.out.println(multiip); multiport=2222; // byteStream = new ByteArrayOutputStream(5000); //socket=new DatagramSocket(bindPort); } catch(IOException e) { System.out.println("Error in Send " + e); } } public void run() { try { while (true ) { // Thread.sleep(1000); Message m=(Message) dct.Consume(); if(m.getmessagegrp()==-1) { System.out.println("send p2p"); //System.out.println("123"+DataSR_comm.getIPP(m.getmessagedest())); //System.out.println(DataSR_comm.IPPMapper); //StringTokenizer str=new StringTokenizer(IPMap.getIPP(m.getmessagedest()),"/"); //tempPort=Integer.parseInt(str.nextToken())+1; //str.nextToken(); sendPacket(m,1211,InetAddress.getByName("localhost")); //System.out.println("P2P message sent to port "+tempPort); } else { //group resolution mechanism.....later System.out.println("pseudo multi"); sendPacket(m,1201,multiip); sendPacket(m,1203,multiip); sendPacket(m,1205,multiip); //System.out.println("Mulitcast message Sent"); } } } catch(Exception e) { System.out.println("Error in Send : run : "+e); } } public void sendPacket(Message m,int desport, InetAddress ip) { try { //socket=new DatagramSocket(bindPort); byteStream = new ByteArrayOutputStream(5000); os = new ObjectOutputStream(new BufferedOutputStream(byteStream)); os.flush(); os.writeObject(m); os.flush(); //retrieves byte array byte[] msg = byteStream.toByteArray(); //System.out.println(ip+" "+desport); //System.out.println(m.getmessagetype()); DatagramPacket hi = new DatagramPacket(msg, msg.length,ip,desport); socket.send(hi); os.flush(); // System.out.println("Packet sent"+desport); //socket.close(); } catch(Exception e) { System.out.println("Send Packet"+e); } ///later! } /* public void sendPacketMulticast(Object o,InetAddess ip) { try { // sends a message to the server to each server in the group ByteArrayOutputStream byteStream = new ByteArrayOutputStream(1000); os = new ObjectOutputStream(new BufferedOutputStream(byteStream)); os.flush(); os.writeObject("Hi, How Are You"); os.flush(); //retrieves byte array byte[] msg = byteStream.toByteArray(); DatagramPacket hi = new DatagramPacket(msg, msg.length,address[i],port[i]); multicastSocket.send(hi); } catch (IOException e) { System.out.println("Exception in Send " + e); } }*/ //socket.close(); }