JAVA简单聊天室的实现
目录
界面效果图
一、聊天室功能介绍?
二、功能代码
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简单聊天室的实现相关推荐
- java 简单聊天室_java实现简单聊天室单人版
本文实例为大家分享了java实现简单聊天室的具体代码,供大家参考,具体内容如下 先整理下思路: 1.创建一个通信服务端,传入端口号和相关的流后等待客户端连接,并初始化图形界面. 2.创建一个JFram ...
- java web利用mvc结构实现简单聊天室功能
简单聊天室采用各种内部对象不适用数据库实现. 一个聊天室要实现的基本功能是: 1.用户登录进入聊天室, 2.用户发言 3.用户可以看见别人发言 刚才算是简单的需求分析了,现在就应该是进 ...
- java jsp聊天系统_java web实现简单聊天室
目标 servlet.jsp实现简单聊天室,用户通过浏览器登录后进入聊天室,可发送消息进行群聊,点击聊天信息框中的用户名可实现拍一拍功能. 基础知识 数据的存取 setAttribute / getA ...
- java web聊天室原理_java web利用mvc结构实现简单聊天室功能
简单聊天室采用各种内部对象不适用数据库实现. 一个聊天室要实现的基本功能是: 1.用户登录进入聊天室, 2.用户发言 3.用户可以看见别人发言 刚才算是简单的需求分析了,现在就应该是进行mvc结构的设 ...
- java web聊天室原理_java web实现简单聊天室
目标 servlet.jsp实现简单聊天室,用户通过浏览器登录后进入聊天室,可发送消息进行群聊,点击聊天信息框中的用户名可实现拍一拍功能. 基础知识 数据的存取 setAttribute / getA ...
- Java+Swing聊天室
Java+Swing聊天室 一.系统介绍 二.系统展示 1.发送消息 2.清屏 三.系统实现 四.其他 1.其它系统 2.获取源码 一.系统介绍 本系统实现了简单的聊天室功能:发送消息.清屏.退出系统 ...
- SpringBoot +WebSocket实现简单聊天室功能实例
SpringBoot +WebSocket实现简单聊天室功能实例) 一.代码来源 二.依赖下载 三.数据库准备(sql) 数据库建表并插入sql 四.resources文件配置 application ...
- 实现TCP简单聊天室(含连接数据库)
课程设计题目: 多人在线聊天室 目录 第一章 系统概述. 1 第二章 系统需求分析. 2 2.1 系统任务描述. 2 2.2 系统功能分析. 2 2.3 系统可行性分析. 2 第三章 系统概 ...
- 基于C/S模式的简单聊天室
基于C/S模式的简单聊天室 要求: 使用Socket实现网上聊天室,要求基于TCP或UDP协议,用户可以通过客户端连接到服务器端并进行聊天,聊天时可以启动多个客户端:服务器启动后,接收客户端发来的用户 ...
- 基于java的聊天室系统设计与实现(项目报告+开题报告+答辩PPT+源代码+部署视频)
项目报告 Java网络聊天室系统的设计与实现 计算机从出现到现在有了飞速的发展,现阶段的计算机已经不单单是用于进行运算的独立的个体了,跟随计算机一同发展的还有互联网技术,经过了长久的发展,互联网技术有 ...
最新文章
- RhinoMock入门(7)——Do,With和Record-playback
- 计算机与安全工程专业结合应用论文,安全工程专业教学论文(5篇)(共17517字).doc...
- PyTorch convert function for op ‘hardswish‘ not implemented.
- 查看windosw服务器序列号,型号
- LinkDevelop平台新建一个产品
- IOS-状态栏的简单操作
- 直入灵魂的Python教学:《看动漫学Python》让学习不再枯燥
- 动态BGP和静态BGP的含义与区别
- 航模入门经典教材:航空模型教材
- 云桌面优缺点_云桌面中VDI架构有什么优势和劣势?
- SRTP RFC4568
- Ubuntu18.04安装专业版pycharm【免费】
- Macbook外接windows键盘,设置快捷键
- a/an,the,said的用法
- matlab 转换为相对湿度
- Python计算化学式相对分子质量(含完整代码)
- 嵌入式Linux容器技术
- lftp下载文件无法覆盖,提示 file already existst and xfer:clobber is unset 问题解决
- [Python|Clothoid]Clothoid曲线(回旋曲线)与直角坐标求解的python实现
- 雄关漫道真如铁 而今迈步从头越