java服务器与客户端源码.doc
文本预览下载声明
服务器(serve?r) 1
类Serv?erTes?t 1
类Chat?Clien?t 2
类MyQu?eue 3
类Rece?iveFr?omCli?ent 4
类Send?ToCli?entTh?read 11
客户端(clien?t) 12
类Stud?entWi?ndow 12
类Stud?entDu?Qu 15
类Clie?ntTes?t 19
类BaoC?unJiL?u 20
服务器(serve?r)
类Serv?erTes?t
packa?ge Serve?r_Sys?tem;
impor?t java.io.IOExc?eptio?n;
impor?t java.net.Serve?rSock?et;
impor?t java.net.Socke?t;
impor?t java.util.Vecto?r;
impor?t Clien?t_Sys?tem.Teach?erWin?dow;
publi?c class? Serve?rTest? exten?ds Threa?d {
priva?te int numbe?r;
priva?te Vecto?r allCl?ient = new Vecto?r();
priva?te MyQue?ue chatC?on = new MyQue?ue();
publi?c Serve?rTest?(int numbe?r)
{
this.numbe?r=numbe?r;
this.start?();
}
publi?c void run()
{
Serve?rSock?et serve?r =null;
try {
serve?r = new Serve?rSock?et(numbe?r);
} catch? (IOExc?eptio?n e1) {
// TODO Auto-gener?ated catch? block?
e1.print?Stack?Trace?();
}
new SendT?oClie?ntThr?ead(chatC?on,allCl?ient);
while?(true)
{
try {
Socke?t ss=serve?r.accep?t();
ChatC?lient? cc=new ChatC?lient?(ss);
//Syste?m.out.print?ln(cc.toStr?ing());
allCl?ient.add(cc);
//Strin?g name=ss.getIn?etAdd?ress().toStr?ing();
chatC?on.offer?(cc.IP+来聊天了。。。);
new Recei?veFro?mClie?nt(cc,chatC?on,allCl?ient );
} catch? (Excep?tion e) {
// TODO Auto-gener?ated catch? block?
e.print?Stack?Trace?();
}
}
}
}
类Chat?Clien?t
packa?ge Serve?r_Sys?tem;
impor?t java.io.Buffe?redRe?ader;
impor?t java.io.IOExc?eptio?n;
impor?t java.io.Input?Strea?mRead?er;
impor?t java.io.Outpu?tStre?am;
impor?t java.io.Print?Strea?m;
impor?t java.io.Reade?r;
impor?t java.net.Socke?t;
impor?t Mysql?_Syst?em.User;
publi?c class? ChatC?lient? {
publi?c Socke?t so;
publi?c Strin?g IP;
publi?c Print?Strea?m out;
publi?c Buffe?redRe?ader in;
publi?c ChatC?lient?(Socke?t so) throw?s Excep?tion
{
this.so=so;
Reade?r r = new Input?Strea?m
显示全部