`
张小芳
  • 浏览: 34393 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

小小QQ聊天室

    博客分类:
  • java
 
阅读更多



  要实现聊天室,要有服务器和客户端。

一 、服务器:

      我用了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 聊天室C# QQ 聊天室

    小小的qq聊天

    这是 一个模仿qq的聊天 的一个小小的软件 简单的一个聊天程序 容易

    java版QQ聊天室

    此版本为java客户端以及服务器qq聊天室,仿qq群!使用多线程技术

    仿QQ聊天室

    这是一个仿QQ的多人聊天室,用到Java SE中的Socket进行连接

    QQ聊天室代码

    这是一个QQ聊天室的代码,Java版本

    类似QQ的文字聊天室

    文字聊天室,同QQ聊天类似,可实现多人同时在线聊天

    qq聊天室程序

    聊天室界面包含公共聊天信息和私人聊天信息,用户可以用鼠标双击聊天列表某个聊天的昵称,和该聊天者进行私人聊天。 4.当新的用户进入聊天室时,所有的用户都可以在聊天列表看到该用户的昵称;当某用户关闭浏览器或...

    QQ聊天室(专为广大学习的朋友制作)

    本程序为大家提供了一个很好的技术学习和参考,内部含有文档,是一个很不错的选择

    简易QQ聊天室

    简易QQ聊天室,C++课程设计,用MFC设计,包括客户端和服务端

    QQ聊天室(QQ 聊天室)

    使用了多线程,java界面,网络,I/O流等多方面知识,是初学者学习的首选。

    模拟QQ聊天室,聊天系统

    模拟了QQ聊天页面,可以实现多人聊天,大家有需要的可以下载。

    qq聊天室源码和视屏

    qq聊天室源码和视屏,主要实现聊天室通讯,有源码,有视屏讲解

    qq聊天室,java版,毕业设计,一切都有

    qq聊天室,java版,毕业设计,一切都有

    仿国外QQ聊天室源码.zip

    非常简陋的聊天室代码,

    java编写的QQ聊天室

    使用java语音编写的聊天界面,可以输入信息,可以保存聊天记录.

    网络多人聊天室-仿QQ聊天室

    这是一个多人聊天室Demo项目,模仿了QQ聊天中的大部分功能 项目功能展示: https://blog.csdn.net/yangzhenyu2/article/details/108818242

    qq聊天室的c++实现

    qq聊天室 使用c++ mfc 开发 ,数据库使用mysql,功能含注册登录 增删改查,聊天等 含详细的代码涉及 绝对适合初学者

    Java编写的qq聊天室

    这是 我做的网路课程设计,一个简单的qq聊天室,望各位兄弟姐妹能用到!!

    VC做的QQ聊天室源码

    chat为聊天室源码,这是一个聊天室例程,服务器程序是chatsrvr.exe,客户端是ChatClient.exe。服务器先运行,客户连接到服务器运行的计算机的IP即可。 wbQQ为类似QQ聊天工具源码,分为注册登录服务器、聊天通信...

Global site tag (gtag.js) - Google Analytics