repositories
/
TD_SR.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
TD2: Invert the stream on socket order: out first.
[TD_SR.git]
/
TD2
/
server
/
BroadcastoThreadService.java
diff --git
a/TD2/server/BroadcastoThreadService.java
b/TD2/server/BroadcastoThreadService.java
index e8a3622a2d53a7396a8877b22b6830dc7769b661..7aa05eb5229c91281bc53068cd0b3a1d3a33058f 100644
(file)
--- a/
TD2/server/BroadcastoThreadService.java
+++ b/
TD2/server/BroadcastoThreadService.java
@@
-19,7
+19,8
@@
public class BroadcastoThreadService implements Runnable {
try {
doService(clientSocket, listoWriter);
clientSocket.close();
try {
doService(clientSocket, listoWriter);
clientSocket.close();
- } catch (IOException e) {
+ }
+ catch (IOException e) {
System.err.println("IOException : " + e);
e.printStackTrace();
}
System.err.println("IOException : " + e);
e.printStackTrace();
}
@@
-31,16
+32,24
@@
public class BroadcastoThreadService implements Runnable {
try {
if (this.clientSocket != null)
this.clientSocket.close();
try {
if (this.clientSocket != null)
this.clientSocket.close();
- } catch (IOException e) {
+ }
+ catch (IOException e) {
System.err.println("IOException : " + e);
e.printStackTrace();
}
}
}
System.err.println("IOException : " + e);
e.printStackTrace();
}
}
}
+ /**
+ * Be careful, this function must be thread-safe
+ * @param clientSocket [description]
+ * @param sharedList [description]
+ * @throws IOException [description]
+ * @throws ClassNotFoundException [description]
+ */
public void doService(Socket clientSocket, ArrayList<ObjectOutputStream> sharedList) throws IOException, ClassNotFoundException {
public void doService(Socket clientSocket, ArrayList<ObjectOutputStream> sharedList) throws IOException, ClassNotFoundException {
- ObjectInputStream OReader = new ObjectInputStream(clientSocket.getInputStream());
ObjectOutputStream OWriter = new ObjectOutputStream(clientSocket.getOutputStream());
ObjectOutputStream OWriter = new ObjectOutputStream(clientSocket.getOutputStream());
+ ObjectInputStream OReader = new ObjectInputStream(clientSocket.getInputStream());
sharedList.add(OWriter);
boolean end = false;
while (!end) {
sharedList.add(OWriter);
boolean end = false;
while (!end) {
@@
-52,10
+61,10
@@
public class BroadcastoThreadService implements Runnable {
broadcastoMsg(roMsg);
}
sharedList.remove(OWriter);
broadcastoMsg(roMsg);
}
sharedList.remove(OWriter);
- if (OReader != null)
- OReader.close();
if (OWriter != null)
OWriter.close();
if (OWriter != null)
OWriter.close();
+ if (OReader != null)
+ OReader.close();
System.out.println("Fin du thread repondant au client, port "
+ clientSocket.getPort());
}
System.out.println("Fin du thread repondant au client, port "
+ clientSocket.getPort());
}