目录

界面效果图

一、聊天室功能介绍?

二、功能代码

1.服务端

2.客户端


界面效果图


提示:以下是本篇文章正文内容,下面案例可供参考

一、聊天室功能介绍?

1. 、对于聊天室就是处理多个客户端发送的请求与信息,从而需要一个服务器端去处理这些客户端请求与信息,故采用的是服务器端/客户端模式(本章只讲解一个客户端与服务端的交流)。
2. 客户端与服务器端的连接:既然是多个客户端发送的请求与信息从而交给服务器端处理,那么客户端与服务器端之间需要进行连接。稍后会通过分析以及代码的方式进行详细操作

3. 客户端方面:客户端在与服务器端建立连接后,通过Socket对象获取输入输出流从而与服务器端之间进行通信。
4. 服务器端方面:服务器端的套接字ServerSocket对象在调用accept()方法侦听客户端的连接,当与客户端成功建立连接后,返回Socket对象,从而利用该Socket对象获取输入输出流从而与客户端进行通信。

二、功能代码

1.服务端

代码如下(示例):

package wdw;import java.awt.BorderLayout;import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.UIManager;public class Fwd_UI extends JFrame implements ActionListener,KeyListener {public static void main(String[] args)throws Exception {
//      设置界面的方格与系统相似(须在窗体加载之前)
//      UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");UIManager.setLookAndFeel("org.jb2011.lnf.beautyeye.BeautyEyeLookAndFeelCross");new Fwd_UI();}private JTextArea jta;private JScrollPane jsp;private JPanel jp;private JTextField jtf;private JButton jb;private BufferedWriter bh=null;public Fwd_UI() {jta=new JTextArea();jta.setEditable(false);jsp=new JScrollPane(jta);jp=new JPanel();jtf=new JTextField(10);jb=new JButton("发送");jp.add(jtf);jp.add(jb);this.add(jsp,BorderLayout.CENTER);this.add(jp,BorderLayout.SOUTH);this.setTitle("星泽聊天服务端");this.setSize(300,300);this.setLocation(500, 300);this.setLocationRelativeTo(null);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);jb.addActionListener(this);jtf.addKeyListener(this);try {ServerSocket ServerSocket=new ServerSocket(8888);Socket Socket=ServerSocket.accept();
//          InputStream in=Socket.getInputStream();BufferedReader br=new BufferedReader(new InputStreamReader(Socket.getInputStream()));bh= new BufferedWriter(new OutputStreamWriter(Socket.getOutputStream()));String line=null;Date sb=new Date();SimpleDateFormat sdf = new SimpleDateFormat();sdf.format(sb);jta.append("\t"+sdf.format(sb)+"\n");while ((line=br.readLine())!=null) {jta.append(line+System.lineSeparator());}Socket.close();} catch (Exception e) {e.printStackTrace();}}@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubwdw();}//定义一个方法private void wdw() {String text=jtf.getText();text="服务端对客户端说:"+text;jta.append(text+System.lineSeparator());try {bh.write(text);bh.newLine();bh.flush();jtf.setText("");} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}@Overridepublic void keyPressed(KeyEvent e) {// TODO Auto-generated method stubif (e.getKeyCode()==KeyEvent.VK_ENTER) {wdw();}}@Overridepublic void keyTyped(KeyEvent e) {// TODO Auto-generated method stub}@Overridepublic void keyReleased(KeyEvent e) {// TODO Auto-generated method stub}}

2.客户端

代码如下(示例):

package wdw;import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.UIManager;public class Khf_UI extends JFrame implements ActionListener,KeyListener {public static void main(String[] args)throws Exception {
//      设置界面的方格与系统相似(须在窗体加载之前)
//      UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");UIManager.setLookAndFeel("org.jb2011.lnf.beautyeye.BeautyEyeLookAndFeelCross");new Khf_UI();}private JTextArea jta;private JScrollPane jsp;private JPanel jp;private JTextField jtf;private JButton jb;private BufferedWriter bh=null;public Khf_UI() {jta=new JTextArea();jta.setEditable(false);jsp=new JScrollPane(jta);jp=new JPanel();jtf=new JTextField(10);jb=new JButton("发送");jp.add(jtf);jp.add(jb);this.add(jsp,BorderLayout.CENTER);this.add(jp,BorderLayout.SOUTH);this.setTitle("星泽聊天客户端");this.setSize(300,300);this.setLocation(500, 300);this.setLocationRelativeTo(null);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);jb.addActionListener(this);jtf.addKeyListener(this);try {Socket Socket=new Socket("127.0.0.1", 8888);//            InputStream in=Socket.getInputStream();BufferedReader br=new BufferedReader(new InputStreamReader(Socket.getInputStream()));bh= new BufferedWriter(new OutputStreamWriter(Socket.getOutputStream()));String line=null;Date sb=new Date();SimpleDateFormat sdf = new SimpleDateFormat();sdf.format(sb);jta.append("\t"+sdf.format(sb)+"\n");while ((line=br.readLine())!=null) {jta.append(line+System.lineSeparator());}Socket.close();} catch (Exception e) {e.printStackTrace();}}@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubwdw();}//定义一个方法private void wdw() {String text=jtf.getText();text="客户端对服务端说:"+text;jta.append(text+System.lineSeparator());try {bh.write(text);bh.newLine();bh.flush();jtf.setText("");} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}@Overridepublic void keyPressed(KeyEvent e) {// TODO Auto-generated method stubif (e.getKeyCode()==KeyEvent.VK_ENTER) {wdw();}}@Overridepublic void keyTyped(KeyEvent e) {// TODO Auto-generated method stub}@Overridepublic void keyReleased(KeyEvent e) {// TODO Auto-generated method stub}}
该处使用的界面美化包,需要导包。

JAVA简单聊天室的实现相关推荐

  1. java 简单聊天室_java实现简单聊天室单人版

    本文实例为大家分享了java实现简单聊天室的具体代码,供大家参考,具体内容如下 先整理下思路: 1.创建一个通信服务端,传入端口号和相关的流后等待客户端连接,并初始化图形界面. 2.创建一个JFram ...

  2. java web利用mvc结构实现简单聊天室功能

    简单聊天室采用各种内部对象不适用数据库实现. 一个聊天室要实现的基本功能是:         1.用户登录进入聊天室, 2.用户发言 3.用户可以看见别人发言 刚才算是简单的需求分析了,现在就应该是进 ...

  3. java jsp聊天系统_java web实现简单聊天室

    目标 servlet.jsp实现简单聊天室,用户通过浏览器登录后进入聊天室,可发送消息进行群聊,点击聊天信息框中的用户名可实现拍一拍功能. 基础知识 数据的存取 setAttribute / getA ...

  4. java web聊天室原理_java web利用mvc结构实现简单聊天室功能

    简单聊天室采用各种内部对象不适用数据库实现. 一个聊天室要实现的基本功能是: 1.用户登录进入聊天室, 2.用户发言 3.用户可以看见别人发言 刚才算是简单的需求分析了,现在就应该是进行mvc结构的设 ...

  5. java web聊天室原理_java web实现简单聊天室

    目标 servlet.jsp实现简单聊天室,用户通过浏览器登录后进入聊天室,可发送消息进行群聊,点击聊天信息框中的用户名可实现拍一拍功能. 基础知识 数据的存取 setAttribute / getA ...

  6. Java+Swing聊天室

    Java+Swing聊天室 一.系统介绍 二.系统展示 1.发送消息 2.清屏 三.系统实现 四.其他 1.其它系统 2.获取源码 一.系统介绍 本系统实现了简单的聊天室功能:发送消息.清屏.退出系统 ...

  7. SpringBoot +WebSocket实现简单聊天室功能实例

    SpringBoot +WebSocket实现简单聊天室功能实例) 一.代码来源 二.依赖下载 三.数据库准备(sql) 数据库建表并插入sql 四.resources文件配置 application ...

  8. 实现TCP简单聊天室(含连接数据库)

    课程设计题目:   多人在线聊天室    目录 第一章 系统概述. 1 第二章 系统需求分析. 2 2.1 系统任务描述. 2 2.2 系统功能分析. 2 2.3 系统可行性分析. 2 第三章 系统概 ...

  9. 基于C/S模式的简单聊天室

    基于C/S模式的简单聊天室 要求: 使用Socket实现网上聊天室,要求基于TCP或UDP协议,用户可以通过客户端连接到服务器端并进行聊天,聊天时可以启动多个客户端:服务器启动后,接收客户端发来的用户 ...

  10. 基于java的聊天室系统设计与实现(项目报告+开题报告+答辩PPT+源代码+部署视频)

    项目报告 Java网络聊天室系统的设计与实现 计算机从出现到现在有了飞速的发展,现阶段的计算机已经不单单是用于进行运算的独立的个体了,跟随计算机一同发展的还有互联网技术,经过了长久的发展,互联网技术有 ...

最新文章

  1. RhinoMock入门(7)——Do,With和Record-playback
  2. 计算机与安全工程专业结合应用论文,安全工程专业教学论文(5篇)(共17517字).doc...
  3. PyTorch convert function for op ‘hardswish‘ not implemented.
  4. 查看windosw服务器序列号,型号
  5. LinkDevelop平台新建一个产品
  6. IOS-状态栏的简单操作
  7. 直入灵魂的Python教学:《看动漫学Python》让学习不再枯燥
  8. 动态BGP和静态BGP的含义与区别
  9. 航模入门经典教材:航空模型教材
  10. 云桌面优缺点_云桌面中VDI架构有什么优势和劣势?
  11. SRTP RFC4568
  12. Ubuntu18.04安装专业版pycharm【免费】
  13. Macbook外接windows键盘,设置快捷键
  14. a/an,the,said的用法
  15. matlab 转换为相对湿度
  16. Python计算化学式相对分子质量(含完整代码)
  17. 嵌入式Linux容器技术
  18. lftp下载文件无法覆盖,提示 file already existst and xfer:clobber is unset 问题解决
  19. [Python|Clothoid]Clothoid曲线(回旋曲线)与直角坐标求解的python实现
  20. 雄关漫道真如铁 而今迈步从头越

热门文章

  1. mac os 录屏快捷键_免费的录屏软件有哪些?不限制时长的录制软件
  2. java语言搭建app后台入门
  3. 当AI邂逅电能:与图知科技一起探索工业AI王座|白洞战报
  4. css中单选按钮怎么写,CSS 单选按钮
  5. Android9一键安全手机
  6. Globle.asax错误:异常详细信息: S…
  7. 440页PPT华为大数据分享专场|实时|离线|数仓
  8. TRNSYS与CONTAM3.4耦合过程
  9. 2021-2004中国环境统计年鉴面板数据、环境面板数据
  10. 0基础入门学PLC,只需掌握好这5个步骤让您从0变精通