java聊天小程序课程设计.docx
tryif(client.socket.isConnected()(elseStringaddr=J0ptionPane.ShOWInPUtDialog("请输入服务器IP:"):InelAddressHddress=InetAddress.geIByName(addr):InetSocketAddressSoCketAddreSS=newInetSockelAddress(address,5555):client.socket,connect(SoCketAddress);client,in=newDataInputStreain(client.socket,getInpulSIreani():client,out=newDataOutputStream(cllent,socket.getOutpulStream();name=client.inputName.getText();client,out.wriIeUTF("姓名为"+name+”的挚友风尘仆仆地上线了.”):client,listen.SetEnabled(true);client,filesend.setEnabled(true);client.sendtoall.SetEnabled(true);client,sendtoone.SeIEnabIed(IrUe);client.emote.SetEnabled(true);if(!(client,thread.isAlive()client.thread=newThread(this);clienl.thread,start();catch(IOExceptionee)client,socket,close():catch(IOExceptionel)el.PrintStackTraceO;System.exit(0);Stringem=client.emote.getSeIectedItemO.toString();if(em.equals("表情”)(NHem=;elseem+="铲;if(e.getSorceO=c1lent,sendtoall)if(client.socket.isConnected()(name=client.inputName.getTextO;Strings=client.inputContent.getText();if(s!=null)tryClient.out.writeUTF(name+em+”对大家说:"+s);client,oul.flush();client.inputContent.setText("");catch(IOExceptionel)if(e.getSourceOc1ient.sendtoone)if(client.socket.isConnected()SendtoID=JOptionPane.ShoWInPUtDialOg(“请输入对方ID:*):(2) Clicent.javapackagechat;importjava.awl.*;importjava.io.*:.*:importjava.awt.event.*;importjavax.swing.*;publicclassClientpublicstaticvoidmain(Stringargs)newChatClientO:classChatClientextendsFrameimplementsAction1.islener,RunnablepublicButtonlisten,connection,sendtoall,sendtoone,exit,filesend:publicJComboBoxemote;publicTextFieldinputName,inputContent;publicTextAreaChatReSUIt:publicSocketsocket=null:publicDataInputStreamin-nul1;publicDataOutputStreamot=null;publicThreadthread;ChatClientOboxl.add(listen):box1.add(connection):boxl.add(fiIesend);boxl.add(exit);Boxbox2=Box.CreatellorizonlalBoxO:emote=newJCoinboBoxO;emote.sel.Model(newDefau1IComboBoxMode1(newString"表情","微笑"甜笑"惊喜"嘻嘻"扮酷"嘿嘿"傻笑","新奇","媚眼","鬼脸","沉醉"羞涩"生气"嚷嚷"发怒"难过"高超"菜鸟"问号","狂笑"大哭"示爱"呻吟"想想”);emole.SetEnabled(false);J1.abeljlintput=newJ1.abe1("输入闲聊内容”);box2.add(jlintput);box2.add(inputContent);box2.add(emote);box2.addCsendtoall);box2.add(sendtoone);listen.addActio111.istener(this);connection.addAction1.istener(this):filesend.addAction1.istener(this);exit.addActIon1.istener(this);sendtoall.addAction1.istener(this);catch(IOExceptionel)el.PrintStackTraceO:publicvoidactiOnPerformed(ActionEvente)(ActionProcessactionProcess=newActionProcess(this):try(actionProcess.action(e);)catch(Exceptionel)(el.PrintStackTraceO;publicvoidrun()Strings=nu11;while(true)trys=in.readlTF();ChatResult.append("n"+s);catch(IOExceplione)ChatResult.SetTeXt(A1与服务器断开连接”);trysocket,closeO;catch(Exceptionep)break;(3) ChatServer.javapackagechat:Stringreceive=in.readllTF();if(receive=null)return;if(receive.ContainS("黯然卜线了")for(inti=0;i<threads,size():i+)ServerThreadst-(ServerThread)threads.elementAt(i);st.write("*"+receive+”*");elseif(receive.COntains("上线了")(for(inti=0;i<threads,size():i+)(ServerThreadst=(ServerThread)threads.elementAt(i);st.WriIe("<"+getID()+”>:receive):elseif(receive.contains("监听中")(for(inti=0;i<threads,size();i+)ServerThreadst-(ServerThread)threads.elementAt(i);si.write("*"+receive+"*"):elseif(receive.COntainS("说")if(receive.ConlainS("大家")for(inti=0;i<threads,size();i+)ServerThreadst=(ServerThread)threads.elementAt(i):st.write("<"+getID()+">:"+receive);elseinttemp=receive.indexf(“<");inttempl=receive.indexf(,>*):StringtempS=receive.SUbString(temp+l,tempi);inti=Integer.parselnl(tempS);ServerThreadst=(ServerThread)threads.elementAt(i);st.write(*<*+getID()+",>:JreCeiVe):st=(ServerThread)threads.elementAt(getID();st.write(*<*+getID()+z,>:JreCeiVe);elseServerThreadst=(ServerThread)threads,ele11entt(getID();st.write(*"+receive+”*");catch(Exceptionex)threads.removeEIement(this);ex.PrintStackTraceO;try(socket,close();Jcatch(Exceptionex)ex.PrintStackTraceO;publicvoidwrite(Stringmsg)synchronized(out)tryout.writeUTF(msg):catch(Exceptionex)publicintgetIDOreturnthis.nid;publicvoidsetID(intnid)this.nid=nid;(4) flIesendClient.javapackagechat;importjava.io.BufferedReader;importjava.io.File;importjava.io.FiIeInputStream:importjava.io.InputStreamReader;importjava.io.OulputStreani:importjava.io.PrintStream;.Socket:importjavax.swing.JOptionPane;publicclassfiIesendClient(publicvoidfilesend()throwsException(StringSendtolP=JOPliOnPane.ShowInpulDialog(”请输入对方IP:*);Socketsocket=newSocket(sendtoIP,1234);BufferedReaderbr=newBufferedReadef(newInputStreamReader(socket,getInputStream():PrintStreamps=newPrinlStream(socket,geIOutputStream();File