欢迎来到天天文库
浏览记录
ID:30210337
大小:23.91 KB
页数:18页
时间:2018-12-27
《java实现聊天室功能(包含全部代码,有界面)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、服务器端代码:importjava.net.*;importjava.io.*;importjava.util.*;importjava.util.concurrent.*;importjavax.swing.*;publicclassServer{privatestaticfinalintPORT=6666;G_Menugm=newG_Menu();privateServerSocketserver;publicArrayListlist;publicstaticStringu
2、ser;publicstaticArrayListlist1=newArrayList();//定义用户集合publicUseruu;publicServer(Stringuser){this.user=user;}publicvoidgetServer(){list=newArrayList();try{server=newServerSocket(PORT);System.out.println("服务器启动,开始监听......");while(tr
3、ue){Socketclient=server.accept();//接收客户端线程PrintWriterwriter=newPrintWriter(client.getOutputStream());list.add(writer);Threadt=newThread(newChat(client));t.start();}}catch(Exceptionex){ex.printStackTrace();}}publicstaticvoidmain(String[]args){newServer(use
4、r).getServer();}classChatimplementsRunnable{Socketsocket;privateBufferedReaderbr;privateStringmsg;privateStringmssg="";publicChat(Socketsocket){try{this.socket=socket;}catch(Exceptionex){ex.printStackTrace();}}publicvoidrun(){try{br=newBufferedReader(newI
5、nputStreamReader(socket.getInputStream()));while((msg=br.readLine())!=null){if(msg.equals("1008611"))//匹配字符串显示好友列表{msg=br.readLine();String[]st=msg.split(":");//将用户信息跟消息分隔开uu=newUser(st[0],st[1],socket);//将用户信息添加到User对象中list1.add(uu);//将对象添加到用户集合Iterator<
6、User>it=Server.list1.iterator();//遍历用户集合while(it.hasNext()){Useruse=it.next();msg=use.getName()+"("+use.getSex()+"):";mssg+=msg;//将所有的用户信息连接成一个字符串}sendMessage("1008611");//显示好友列表匹配标识sendMessage(mssg);//群发消息}elseif(msg.equals("10010"))//显示说话消息{msg=br.readL
7、ine();System.out.println(msg);sendMessage("10010");//显示说话信息匹配标识sendMessage(msg);}elseif(msg.equals("10086"))//显示进入聊天室{msg=br.readLine();System.out.println(msg);sendMessage("10086");//进入聊天室匹配标识sendMessage(msg);}elseif(msg.equals("841163574"))//私聊{msg=br.re
8、adLine();String[]rt=msg.split("1072416535");//把传进来的用户信息跟说话内容分开System.out.println(rt[1]);//在服务器端显示说话内容String[]tg=rt[0].split(":");//因为是私聊,传过来两个用户的用户信息,这句作用是再把两个用户信息分开Iteratoriu=Server.list1.iterator();//遍历用户集合w
此文档下载收益归作者所有