要实现聊天室,要有服务器和客户端。
一 、服务器:
我用了7个类:
1. myFrame:是主类,显示服务器界面,发布管理员消息,显示在线用户消息,踢人,对某一个人发布消息,
显示在线者聊天 的所有消息。
执行发信菜单项的功能
private void sendto1(int i) {
final serverThread th=chatList.arr.get(i);
JDialog jd=new JDialog(this,true);//发送对话框
jd.setLayout(new FlowLayout());
jd.setTitle("给"+th.user.getName()+"发送消息");
jd.setSize(400, 100);
final JTextField jt=new JTextField(20);//写消息的文本框
JButton jb=new JButton("发送");
jd.add(jt);
jd.add(jb);
jb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.out.println("发送了一条消息!");
String s="管理员对你说:"+jt.getText();
ja.append("管理员对"+th.user.getName()+"说:"+jt.getText()+"\r\n");
th.sendMessage(s);//发送消息
}
});
jd.setVisible(true);
jd.validate();
}
执行踢人菜单项功能
private void delp(int i) {
chatList.removeClient(chatList.arr.get(i));
}
发消息给一个人
private void sendMessageall(String s) {
for(int i=0;i<chatList.arr.size();i++){
serverThread ser=chatList.arr.get(i);//得到线程对象
ja.append(s+"\r\n");
ser.sendMessage(s);//调用线程类中的发消息方法,发送消息
}
2. chatList :服务器对客户机线程处理,转发消息的类
将每一个客户的对应的线程对象加入队列中:addClient(serverThread sc)
给每一个在线客户机发送 "**上线了!"的消息:castMsg(UserInfo ownU, String s)
将该线程对象从队列中移除: removeClient(serverThread sc)
3. UserInfo:是用户个人类
4. serverThread:对客户机连接对象处理的类
处理用户发送过来的信息: processchat()
发送信息: processchat(),字符串要以"\r\n"结尾
得到用户对象:getOwnU()
关闭连接并将线程从队列中移除:closeMe();
5. test1:启动服务器,调用accept()方法让服务器进入等待状态
6 .listInterfac:继承ListModel接口,对Jlist的ListModel进行处理
7 . 账号验证,数据保存、更改等功能实现:DaoTools。
用户数据保存在Map<String,UserInfo>中
验证用户消息:checkLogin(UserInfo user)
二 客户端:验证用户方法和连接服务器,然后聊天(内容通过服务器管理)
有3个类:
myFrame2:显示登录界面和聊天界面
MsgThead:用户登录成功的线程
test2: 对聊天线程进行处理
连接服务器,并将连接交给线程处理,认证用户: chatServer(String useName, String pwd)
读取服务器消息方法: readM()
客户发送消息:sendM(String s)
服务器接界面:
在线用户列表,可以给每一个人发信和踢人
给用户 2 发消息的消息框
客户登录界面
客户1的聊天界面 ,以及部分聊天消息!
- 大小: 11.5 KB
- 大小: 1 KB
- 大小: 4.4 KB
- 大小: 8.8 KB
- 大小: 6.3 KB
分享到:
相关推荐
C# QQ 聊天室 C# QQ 聊天室C# QQ 聊天室C# QQ 聊天室C# QQ 聊天室C# QQ 聊天室C# QQ 聊天室
这是 一个模仿qq的聊天 的一个小小的软件 简单的一个聊天程序 容易
此版本为java客户端以及服务器qq聊天室,仿qq群!使用多线程技术
这是一个仿QQ的多人聊天室,用到Java SE中的Socket进行连接
这是一个QQ聊天室的代码,Java版本
文字聊天室,同QQ聊天类似,可实现多人同时在线聊天
聊天室界面包含公共聊天信息和私人聊天信息,用户可以用鼠标双击聊天列表某个聊天的昵称,和该聊天者进行私人聊天。 4.当新的用户进入聊天室时,所有的用户都可以在聊天列表看到该用户的昵称;当某用户关闭浏览器或...
本程序为大家提供了一个很好的技术学习和参考,内部含有文档,是一个很不错的选择
简易QQ聊天室,C++课程设计,用MFC设计,包括客户端和服务端
使用了多线程,java界面,网络,I/O流等多方面知识,是初学者学习的首选。
模拟了QQ聊天页面,可以实现多人聊天,大家有需要的可以下载。
qq聊天室源码和视屏,主要实现聊天室通讯,有源码,有视屏讲解
qq聊天室,java版,毕业设计,一切都有
非常简陋的聊天室代码,
使用java语音编写的聊天界面,可以输入信息,可以保存聊天记录.
这是一个多人聊天室Demo项目,模仿了QQ聊天中的大部分功能 项目功能展示: https://blog.csdn.net/yangzhenyu2/article/details/108818242
qq聊天室 使用c++ mfc 开发 ,数据库使用mysql,功能含注册登录 增删改查,聊天等 含详细的代码涉及 绝对适合初学者
这是 我做的网路课程设计,一个简单的qq聊天室,望各位兄弟姐妹能用到!!
chat为聊天室源码,这是一个聊天室例程,服务器程序是chatsrvr.exe,客户端是ChatClient.exe。服务器先运行,客户连接到服务器运行的计算机的IP即可。 wbQQ为类似QQ聊天工具源码,分为注册登录服务器、聊天通信...