Java Reference
In-Depth Information
String mesg
=
line
.
substring
(
where
+
1
);
log
(
"MESG: "
+
login
+
"-->"
+
recip
+
": "
+
mesg
);
ChatHandler cl
=
lookup
(
recip
);
iif
(
cl
==
null
null
)
psend
(
CHATMASTER_ID
,
recip
+
" not logged in."
);
else
cl
.
psend
(
login
,
mesg
);
break
break
;
case
case
ChatProtocol
.
CMD_QUIT
:
broadcast
(
CHATMASTER_ID
,
"Goodbye to "
+
login
+
"@"
+
clientIP
);
close
();
return
return
;
// The end of this ChatHandler
case
case
ChatProtocol
.
CMD_BCAST
:
iif
(
login
!=
null
null
)
broadcast
(
login
,
line
);
else
log
(
"B<L FROM "
+
clientIP
);
break
break
;
default
default
:
log
(
"Unknown cmd "
+
c
+
" from "
+
login
+
"@"
+
clientIP
);
}
}
}
catch
catch
(
IOException e
) {
log
(
"IO Exception: "
+
e
);
}
finally
finally
{
// the sock ended (darn it), so we're done, bye now
System
.
out
.
println
(
login
+
SEP
+
"All Done"
);
String message
=
"This should never appear."
;
synchronized
synchronized
(
clients
) {
clients
.
remove
(
this
this
);
iif
(
clients
.
size
() ==
0
) {
System
.
out
.
println
(
CHATMASTER_ID
+
SEP
+
"I'm so lonely I could cry..."
);
}
else
else iif
(
clients
.
size
() ==
1
) {
message
=
"Hey, you're talking to yourself again"
;
}
else
else
{
message
=
"There are now "
+
clients
.
size
() +
" users"
;
}
}
broadcast
(
CHATMASTER_ID
,
message
);
}
}