3 import java.io.ObjectOutputStream;
4 import java.net.Socket;
8 public class SenderSocket extends Sender {
11 static SenderSocket Instance = null;
13 // Message msg = null;
16 // boolean msgIsSent; //attribute used in the JaceSender to know if msg has
18 // JaceInterface stub = null;
21 public static SenderSocket Instance() {
22 if (Instance == null) {
23 Instance = new SenderSocket();
28 private SenderSocket() {
29 setPriority(MAX_PRIORITY);
31 buffer = new JaceBuffer();
44 // consumme the msg to send (doing a wait, so the msg is processed
46 // System.out.println("the sender thread is alive");
52 // sending of the message !
54 // RemoteStubs.Instance().lookUp(msg.getReceiver().getHostIP()).getStub();
55 // stub = msg.getReceiver().getHostStub();
56 name = msg.getReceiver().getHostName();
58 if (Register.Instance().getNodeOfName(name)
59 .getOutputStream() != null) {
60 ObjectOutputStream out = (ObjectOutputStream) Register
61 .Instance().getNodeOfName(name)
63 out.writeObject((Object) msg);
66 // System.out.println("tryin to send to " +
67 // msg.getReceiver().getRank() + "(" +
68 // Register.Instance().getListeOfTasks().getTaskIdOfRank(msg.getReceiver().getRank()).getHostName()
70 // ")"+" tag="+msg.getSrc_tag()+" iter= "+msg.getSrc_iteration());
72 Socket s = new Socket(name, LocalHost.Instance()
74 ObjectOutputStream out = new ObjectOutputStream(s
76 out.writeObject((Object) msg);
79 Register.Instance().getNodeOfName(name)
80 .setOutputStream(out);
81 new HandleClient(s, 1).start();
83 // if (stub == null) {
84 // System.out.println("SENDER : stub nuuuuuuuuuuuuuuuuuuuuuuuuuuull");
87 // stub.iSendYou(msg);
89 // System.out.println("ENVOI succesful to " +
90 // msg.getReceiver().getRank() + "(" +
91 // Register.Instance().getListeOfTasks().getTaskIdOfRank(msg.getReceiver().getRank()).getHostName()
93 // System.out.println("envoi succesful to " +
94 // msg.getReceiver().getHostIP());
97 } catch (Exception e) {
99 .println("error in SenderSocket run method :" + e);
101 // System.out.println("SENDER : the node of task " +
102 // msg.getReceiver().getHostIP() + " is dead !!!! " + e);
103 // System.out.println("SENDER : the dest is dead so I send nothing, message lost");