java单人聊天
服务端
package 单人聊天;import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;public class AServer extends JFrame implements ActionListener,Runnable {private int Port = 9999;private ServerSocket SS;private Socket socket;private JTextArea area = new JTextArea("聊天内容:"+'\n');private JTextField field = new JTextField("");public AServer(){this.setTitle("服务器");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.add(area,BorderLayout.CENTER);this.add(field,BorderLayout.NORTH);field.addActionListener(this);this.setSize(190, 200);this.setVisible(true);try{ SS = new ServerSocket(Port);socket = SS.accept();new Thread(this).start();}catch(Exception ex){ } }public void run(){try{while(true){InputStream is = socket.getInputStream();BufferedReader br = new BufferedReader(new InputStreamReader(is));String str = br.readLine(); area.append(str + '\n'); } }catch(Exception ex){ }}public void actionPerformed(ActionEvent e){try{OutputStream os = socket.getOutputStream();PrintStream ps = new PrintStream(os);ps.println("服务器说:" + field.getText());field.setText("");}catch(Exception ex){ }} public static void main(String[] args){new AServer();}
}
客户端
package 单人聊天;import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.InetAddress;
import java.net.Socket;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;public class Aclient extends JFrame implements ActionListener, Runnable {private Socket socket1;private int Port1 = 9999;private InetAddress ip1;private JTextArea area1 = new JTextArea("聊天内容:\n");private JTextField field1 = new JTextField("");public Aclient(){this.setTitle("客户端");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.add(field1,BorderLayout.NORTH);field1.addActionListener(this);this.add(area1, BorderLayout.CENTER); this.setSize(190, 200);this.setVisible(true);try{ip1 = InetAddress.getByName("Localhost");socket1 = new Socket(ip1,Port1);OutputStream os = socket1.getOutputStream();PrintStream ps = new PrintStream(os);ps.println("客户端连接");new Thread(this).start(); }catch (Exception ex){ }}public void run1(){try{while(true){InputStream is = socket1.getInputStream();BufferedReader bf = new BufferedReader(new InputStreamReader(is));String str = bf.readLine();area1.append(str + '\n');}}catch (Exception ex){ }}public void actionPerformed1(ActionEvent e){try{OutputStream os = socket1.getOutputStream();PrintStream ps = new PrintStream(os);ps.println("客户端说:" + field1.getText());field1.setText("");}catch (Exception ex){}}public static void main1(String[] args) {new Aclient();}private Socket socket;private int Port = 9999;private InetAddress ip;private JTextArea area = new JTextArea("聊天内容:\n");private JTextField field = new JTextField("");public void Aclient1(){this.setTitle("客户端");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.add(field1,BorderLayout.NORTH);field1.addActionListener(this);this.add(area1, BorderLayout.CENTER); this.setSize(190, 200);this.setVisible(true);try{ip1 = InetAddress.getByName("Localhost");socket1 = new Socket(ip1,Port1);OutputStream os = socket1.getOutputStream();PrintStream ps = new PrintStream(os);ps.println("客户端连接");new Thread(this).start(); }catch (Exception ex){ }}public void run(){try{while(true){InputStream is = socket1.getInputStream();BufferedReader bf = new BufferedReader(new InputStreamReader(is));String str = bf.readLine();area1.append(str + '\n');}}catch (Exception ex){ }}public void actionPerformed(ActionEvent e){try{OutputStream os = socket1.getOutputStream();PrintStream ps = new PrintStream(os);ps.println("客户端说:" + field1.getText());field1.setText("");}catch (Exception ex){}}public static void main(String[] args) {new Aclient();}
}
服务端的窗口
客户端窗口
相关文章:

java单人聊天
服务端 package 单人聊天;import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import…...
nodejs环境安装
node安装 wget https://mirrors.tuna.tsinghua.edu.cn/nodejs-release/v20.8.0/node-v20.8.0-linux-x64.tar.gz tar xf node-v20.8.0-linux-x64.tar.xz -C /usr/local/ ln -s node-v20.8.0-linux-x64 nodevim /etc/profile.d/node.sh export PATH$PATH:/usr/local/node/binnp…...
R语言进行正态分布检验
查了很多资料,还是比较模糊 Kolmogorov-Smirnov检验(K-S检验)广泛用于正态性检验和其他分布的拟合检验。适用于中等到大样本。 Lilliefors检验是K-S检验的一种变体,专门为小样本设计。其通过使用更准确的临界值来提高对小样本的适…...

什么是SPA(Single Page Application)?它的优点和缺点是什么?
聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…...

由于找不到xinput1_3.dll,无法继续执行代码的多种解决方法指南,xinput1_3.dll文件修复
当玩家或用户在启动某些游戏和应用程序时,可能会遭遇到一个系统错误提示:“由于找不到xinput1_3.dll,无法继续执行代码l”。这种情况通常指出系统中DirectX组件存在问题。以下我们将介绍几种常用的解决方法,并提供详细的操作步骤。 一.找不到…...

Vue---Echarts
项目需要用echarts来做数据展示,现记录vue3引入并使用echarts的过程。 1. 使用步骤 安装 ECharts:使用 npm 或 yarn 等包管理工具安装 ECharts。 npm install echarts 在 Vue 组件中引入 ECharts:在需要使用图表的 Vue 组件中,引入…...
uni-app实现返回刷新上一页
方案一 通过监听器实现 page1 uni.$on("refresh", function(data) {if(data.page "page2") {this.reload()} })page2 methods: {handleBack() {uni.$emit("refresh", {page: "page2"})uni.navigateBack()} }方案二 通过页面实例实…...

centos服务器安装docker和Rabbitmq
centos服务器 一 centos安装docker1 安装docker所需要的依赖包2配置yum源3查看仓库中所有的docker版本4安装docker5 设置docker为开机自启6验证docker是否安装成功 二 使用docker安装RabbitMQ拉取RabbitMQ镜像创建并运行容器 一 centos安装docker 1 安装docker所需要的依赖包 …...

【Redis】Redis高级特性和应用(慢查询、Pipeline、事务、Lua)
目录 Redis的慢查询 慢查询配置 慢查询操作命令 慢查询建议 Pipeline 事务 Redis的事务原理 Redis的watch命令 Pipeline和事务的区别 Lua Lua入门 安装Lua Lua基本语法 注释 标示符 关键词 全局变量 Lua中的数据类型 Lua 中的函数 Lua 变量 Lua中的控制语句…...

【pytorch】深度学习入门一:pytorch的安装与配置(Windows版)
请支持原创,认准DannisTang(tangweixuan1995foxmail.com) 文章目录 第〇章 阅读前提示第一章 准备工作第一节 Python下载第二节 Python安装第三节 Python配置第四节 Pycharm下载第五节 Pycharm安装第六节 CUDA的安装 第二章 Anaconda安装与配…...

安装postgresql驱动及python使用pyodbc指定postgresql驱动调用postgresql
注:Python解释器版本(32位/64位)和postgresql驱动版本(32位/64位)需一致。 一、安装postgresql驱动 https://www.postgresql.org/ftp/odbc/versions/msi/ (1)32位: (2)64位: 双击安装。全程默…...

【OpenCV】计算机视觉图像处理基础知识
目录 前言 推荐 1、OpenCV礼帽操作和黑帽操作 2、Sobel算子理论基础及实际操作 3、Scharr算子简介及相关操作 4、Sobel算子和Scharr算子的比较 5、laplacian算子简介及相关操作 6、Canny边缘检测的原理 6.1 去噪 6.2 梯度运算 6.3 非极大值抑制 6.4 滞后阈值 7、Ca…...

Course1-Week3-分类问题
Course1-Week3-分类问题 文章目录 Course1-Week3-分类问题1. 逻辑回归1.1 线性回归不适用于分类问题1.2 逻辑回归模型1.3 决策边界 2. 逻辑回归的代价函数3. 实现梯度下降4. 过拟合与正则化4.1 线性回归和逻辑回归中的过拟合4.2 解决过拟合的三种方法4.3 正则化4.4 用于线性回归…...

Dockerfile 指令的最佳实践
这些建议旨在帮助您创建一个高效且可维护的Dockerfile。 一、FROM 尽可能使用当前的官方镜像作为镜像的基础。Docker推荐Alpine镜像,因为它受到严格控制,体积小(目前不到6 MB),同时仍然是一个完整的Linux发行版。 FR…...

Drools 入门:折扣案例
1. 安装 在idea软件中安装Drools 插件,我这里是直接搜索Drools就可以搜到 2. 实现入门案例 2.1 配置pom.xml文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi&q…...

微信小程序中生命周期钩子函数
微信小程序 App 的生命周期钩子函数有以下 7 个: onLaunch(options):当小程序初始化完成时,会触发 onLaunch(全局只触发一次)。onShow(options):当小程序启动或从后台进入前台显示时,会触发 on…...

“无忧文件安全!上海迅软DSE文件加密软件助您轻松管控分公司数据!
许多大型企业集团由于旗下有着分布在不同城市的分支机构,因此在规划数据安全解决方案时,不适合采用市面上常见的集中式部署方式来管控各分部服务器,而迅软DSE文件加密软件支持采用分布式部署的方式来解决这一问题。 企业用户只需在总部内部署…...

详解线段树
前段时间写过一篇关于树状数组的博客树状数组,今天我们要介绍的是线段树,线段树比树状数组中的应用场景更加的广泛。这些问题也是在leetcode 11月的每日一题频繁遇到的问题,实际上线段树就和红黑树 、堆一样是一类模板,但是标准库…...
C语言——指针的运算
1、指针 - 整数 #include<stdio.h> #define N_VALUES 5 int main() {flout values[N_VALUES];flout *vp;for(vp&values[0];vp<&values[N_VALUES];) //指针的关系运算{*vp0; //指针整数} } 2、指针 - 指针 #include<stdio.h> int main() …...

Apache Hive(部署+SQL+FineBI构建展示)
Hive架构 Hive部署 VMware虚拟机部署 一、在node1节点安装mysql数据库 二、配置Hadoop 三、下载 解压Hive 四、提供mysql Driver驱动 五、配置Hive 六、初始化元数据库 七、启动Hive(Hadoop用户) chown -R hadoop:hadoop apache-hive-3.1.3-bin hive 阿里云部…...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...

算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...

如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...

MySQL的pymysql操作
本章是MySQL的最后一章,MySQL到此完结,下一站Hadoop!!! 这章很简单,完整代码在最后,详细讲解之前python课程里面也有,感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...