Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Creating the JaceP2P repository.
[jaceP2P.git] / src / jaceP2P / HandleClient.java
1 package jaceP2P;
2
3 import java.net.*;
4 import java.io.*;
5
6 public class HandleClient extends Thread {
7         Socket s;
8         ObjectInputStream in;
9         String name;
10
11         @SuppressWarnings("static-access")
12         public HandleClient(Socket s) {
13                 try {
14                         this.s = s;
15                         in = new ObjectInputStream(s.getInputStream());
16                         ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream());
17                         name = s.getInetAddress().getLocalHost().getHostName();
18                         Register.Instance().getNodeOfName(name).setOutputStream(out);
19                 } catch (Exception e) {
20                         System.err.println("error in HandleClient Constructor: " + e);
21                         e.printStackTrace(System.out);
22                 }
23         }
24
25         public HandleClient(Socket s, int type) {
26                 try {
27                         this.s = s;
28                         in = new ObjectInputStream(s.getInputStream());
29                 } catch (Exception e) {
30                         System.out.println("error in HandleClient Constructor: " + e);
31                         e.printStackTrace(System.out);
32                 }
33         }
34
35         public void run() {
36                 // int j=0;
37                 Message msg = null;
38                 try {
39                         while (s.isConnected()
40                                         && LocalHost.Instance().getStartedThreads() == true) {
41                                 Object x = in.readObject();
42                                 if (x instanceof Message) {
43                                         msg = (Message) x;
44                                         // try{
45                                         // msg=(Message)in.readObject();
46                                         if (msg.getTimeStep() == JaceSession.Instance()
47                                                         .getTaskObject().timeStep)
48                                                 // System.out.println("recieved message from "+msg.getSender().getHostName()+" tag="+msg.getSrc_tag()+" iter= "+msg.getSrc_iteration()+" "+j);
49                                                 MsgQueue.Instance().add(msg);
50                                         // j++;
51                                 }
52                         }
53
54                         in.close();
55                         s.close();
56                 } catch (Exception e) {
57                         // System.out.println("error in HandleClient run method :"+e);
58                         try {
59
60                                 in.close();
61                                 Register.Instance().getNodeOfName(name).getOutputStream()
62                                                 .close();
63                                 Register.Instance().getNodeOfName(name).setOutputStream(null);
64                                 s.close();
65                         } catch (Exception e1) {
66                                 // System.out.println("unable to close socket in HandleClient run method :"+e);
67                         }
68                 }
69         }
70 }