public class Connection {
public void run() {
String clientName = socket.getInetAddress().toString();
try {
while (connectionOpen) {
try {
Object msg = inputStream.readObject();
handleIncomingMessage(clientName, msg);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
server.removeConnection(this);
TextMessage quitNotification = new TextMessage(clientName + " has left.");
server.broadcast(quitNotification);
try {
socket.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
protected void handleIncomingMessage(String name, Object msg) {
if (msg instanceof LoginRequest){
String uName = ((LoginRequest)msg).Usrname;
String pwd = ((LoginRequest)msg).Pwd;
if (server.userData.containsKey(uName)){
if (((String)server.userData.get(uName)).equals(pwd)){
try{
LoginReply reply = new LoginReply();
reply.status = true;
outputStream.writeObject( reply );
} catch( IOException w ){w.toString();}
}else{
try{
LoginReply reply = new LoginReply();
reply.status = false;
outputStream.writeObject( reply );
} catch( IOException w ){w.toString();}
}
}else{
try{
LoginReply reply = new LoginReply();
reply.status = false;
outputStream.writeObject( reply );
} catch( IOException w ){w.toString();}
}
}
original(name,msg);
}
}