-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathServerConnection.java
More file actions
66 lines (59 loc) · 2.93 KB
/
ServerConnection.java
File metadata and controls
66 lines (59 loc) · 2.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
/**
* ServerConnection class providing server connection with Thread
**/
public class ServerConnection implements Runnable {
private String userName; // Client user name
private BufferedReader clientInput; // Client input stream
private PrintWriter clientOutput; // Client output stream
public ServerConnection(Socket clientSocket) throws Exception {
clientInput = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
clientOutput = new PrintWriter(clientSocket.getOutputStream(), true);
userName = clientInput.readLine(); // User name assigned
Server.getUserList().add(userName); // User added to userList
Server.getClientList().add(this); // Client added to clientList
}
public void run() {
String message; // Input message
try {
label:
while (true) {
message = clientInput.readLine(); // Message readed
switch (message) {
case "Disconnect": // Client disconnected
Server.getUserList().remove(userName);
Server.getClientList().remove(this);
break label;
case "%&": // AES method
messageSender("%&--" + Server.getAES_key() + "--" + Server.getAES_vector());
break;
case "&%": // DES method
messageSender("&%--" + Server.getDES_key() + "--" + Server.getDES_vector());
break;
default:
if (message.length() > 2) {
String[] word = message.split("--");
System.out.println(word[1] + " > " + word[2]);
}
messageSender(message);
break;
}
}
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
/**
* Server distributes the message from the client, to client's output streams.
*
* @param message --> Input message
**/
public void messageSender(String message) {
for (ServerConnection handler : Server.getClientList()) {
handler.clientOutput.println(message);
}
}
}