java单线程聊天室代码

Java聊天室的实现 Java聊天室的实现 简单的单线程聊天室 1.1客户端的实现 1.2服务器端的实现 多线程的聊天室 1.1服务器端 1.2客户端 实现文件的发送 1.1协议 实现视频聊天与语音聊天 简单的单线程聊天室 先来认识一些简单的命令行:(按下win+r键输入cmd,打开系统控制台) ping netjava.cn: 用来检测网络是否通畅 ipconfig :用来查看ip地址等 teln... 阅读详情

java单线程聊天室代码

服务端代码

public class Main extends Thread {
    private ServerSocket serverSocket = null;
    Socket socket = null;

    public Main(int port) {
        try {
            serverSocket = new ServerSocket(port);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void run() {
        try {
            socket = serverSocket.accept();
            new Writ().start();
            InputStream inputStream = socket.getInputStream();
            int len = 0;
            byte[] bytes = new byte[1024];
            while ((len = inputStream.read(bytes)) != -1) {
                System.out.println(new String(bytes, 0, len, "utf-8"));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    class Writ extends Thread{
        OutputStream outputStream=null;
        Scanner scanner=null;
        @Override
        public void run() {
            try {
                outputStream = socket.getOutputStream();
                scanner=new Scanner(System.in);
                String s="";
                while (true){
                    s = scanner.next();
                    outputStream.write(s.getBytes());
                    outputStream.flush();
                    if(s.equals("p")){
                        break;
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) throws IOException {
        Main main01=new Main(8888);
        main01.start();
    }
}

客户端

public class Demo01 extends Thread{
    Socket socket = null;

    public Demo01(String IP,int port) {
        try {
            socket=new Socket(IP,port);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void run() {
        try {
            InputStream inputStream = socket.getInputStream();
            new Writ().start();
            int len = 0;
            byte[] bytes = new byte[1024];
            while ((len = inputStream.read(bytes)) != -1) {
                System.out.println(new String(bytes, 0, len, "utf-8"));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    class Writ extends Thread{
        OutputStream outputStream=null;
        Scanner scanner=null;
        @Override
        public void run() {
            try {
                outputStream = socket.getOutputStream();
                scanner=new Scanner(System.in);
                String s="";
                while (true){
                    s = scanner.next();
                    outputStream.write(s.getBytes());
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    public static void main(String[] args) {
        Demo01 demo01=new Demo01("192.168.1.4",8888);
        demo01.start();
    }
}

Java SE——实现多人聊天室 实现功能: 1.实现用户注册上线,下线 2.实现群聊和私聊功能 3.实现统计当前在线人数 实现思路: 1.首先,要实现服务端与客户端之间的连接 这里是使用套接字建立TCP连接: (1)服务器端先实例化一个描述服务器端口号的ServerSocket对象 (2)客户端要创建Socket对象来连接指定的服务器端 (3)服务器端调用ServerSocket类的accept()方法来监听连... 阅读详情

相关推荐

websocket实现的简单的单聊多聊程序

websocket实现的简单的聊天程序,包括单聊和多聊,适合初学者

Java 高并发编程——Reactor模式(单线程)-备份

什么是单线程版本的Reactor模式?简单地说,Reactor和Handlers处于一个线程中执行。这是最简单的Reactor模式。如下图:基于Java NIO如何实现简单的单线程版本的 Reactor模式呢?需要用到SelectionKey(选择键)的几个重要的成员方法:1、void attach(Object o):将对象附件到选择键。此方法可以将任何Java POJO对象作为附件添加到SelectionKey实例。

geminigoth的博客 1246

从零到英雄:WSL2与Ubuntu22.04的终极性能调优指南

本文详细介绍了如何在Windows系统中通过WSL2与Ubuntu22.04进行性能调优,涵盖内核定制、GPU加速、网络优化等关键技巧,帮助开发者打造媲美原生Linux的高性能开发环境,特别适合AI训练和大数据处理等资源密集型任务。

weixin_29218509的博客 523

JAVA线程代码.

线程

m0_74195366的博客 603

STLink驱动故障全解析:从卡顿到重装的终极修复指南

本文全面解析STLink驱动故障的常见现象及解决方案,包括驱动卸载、重装、Keil环境配置等关键步骤。针对设备管理器黄色感叹号、Keil识别异常等问题,提供从软件到硬件的终极修复指南,帮助开发者高效解决STLink连接问题。

sss66的博客 734

VS2015+C++实战:手把手教你用海康MVS里的Demo搞定多相机同步采图与保存

本文详细解析了在VS2015+C++环境下,利用海康威视MVS工业相机SDK实现多相机同步采图与保存的全流程。从环境准备、SDK选择到多相机初始化、同步采图方案,再到异常处理与性能优化,提供了实战技巧和代码示例,帮助开发者快速掌握工业相机二次开发的核心技术。

weixin_29170327的博客 280

Java简单线程创建

创建 Callable 实现类的实例,使用 FutureTask 类来包装 Callable 对象,该 FutureTask 对象封装了该 Callable 对象的 call() 方法的返回值;Callable产生结果,Callable是个泛型接口,含有call()方法与Thread的run()方法不同的是,call()方法具有返回值,Future获取结果。创建 Callable 接口的实现类,并实现 call() 方法,该 call() 方法将作为线程执行体,并且有返回值;2:实现Runnable接口。

qq_60567426的博客 801

在Unity3d使用yolov8的onnx模型

输出OUTPUTS是float32[1,35,8400],表示它会输出一个大小为[1, 35, 8400]的浮点数张量。这个输出张量的维度表示了检测到的目标的数量、每个目标的预测参数以及网格单元的数量。输出张量的第一个维度1表示检测到的目标数量。每个目标由35个值组成,表示目标的类别、置信度、边界框的坐标及10个特定点的位置。要取得8400个数据中置信度最高的数据,然后获取该数据其他channel的数据。运行结果:(蓝色是检测手的边框,红点是自定义的点),其中的四个数字分别表示不同的维度。

shenqingyu0605202324的博客 5601

java 单线程_实例分析Java单线程与多线程

线程:每一个任务称为一个线程,线程不能独立的存在,它必须是进程的一部分单线程:般常见的Java应用程序都是单线程的,比如运行helloworld的程序时,会启动jvm进程,然后运行main方法产生线程,main方法也被称为主线程。多线程:同时运行一个以上线程的程序称为多线程程序,多线程能满足程序员编写高效率的程序来达到充分利用 CPU 的目的。单线程代码例子:public class Single...

weixin_39968128的博客 340

Python实现安居客新房数据抓取简易版

本文介绍使用Python爬取安居客新房楼盘数据的方法,重点针对三四线城市。通过分析移动端H5页面结构,采用滚动加载方式获取推荐楼盘列表(class="recomm-list"),从中提取楼盘ID并拼接详情页链接。代码展示了如何解析HTML标签获取楼盘名称、状态、价格、户型等基本信息,并处理图片URL。爬取过程涉及一个一级页面和两个二级页面,同时提到可能遇到的验证码问题将在后续处理。核心代码使用BeautifulSoup解析HTML,requests发送请求,并将数据存入MySQL数据库。

qq_37604998的博客 475

Box2D-Lite源码阅读笔记(2)

0.初始化函数 static void InitDemo(int index) { world.Clear(); numBodies = 0; numJoints = 0; bomb = NULL; demoIndex = index; demos[index](bodies, joints); } 在这个初始化函数中,一般会默认执行index=0的函数,这个函数就是一个示例,因为示例比较简单,所以也便于研究,示例效果如下。 就是一个方块。 进入第一个示例函数。(忽略我加的注释)

ARTELE的博客 975

Java网络编程聊天室——单线程(二)

通过上一个博客对网络编程的介绍,今天来编写相应的代码。 首先对这个项目做一个小的规划: 目标:单线程的聊天室 功能: 1、服务器 2、客户端 业务: 1、客户端发数据给服务器,服务器接受数据,并打印。 2、服务器相应数据给客户端,客户端接收数据,并打印。 技术: 1、服务器:ServerSocket类 2、客户端:Socket类 3、两个程序:服务器程序、客户端程序 4...

kang0915的博客 426

XGBoost与Embedding混合建模实战解析

在机器学习领域,特征工程与模型融合是提升预测性能的关键技术。Embedding技术通过将高维稀疏特征(如文本、ID类数据)转化为低维稠密向量,有效捕获语义关联;而XGBoost作为强大的集成学习算法,擅长处理结构化特征并进行自动特征组合。两者结合的混合架构(如Semantic Boosted Trees)在金融风控和推荐系统等场景中展现出显著优势,尤其在处理用户行为序列、商品ID等复杂特征时,相比传统方法能获得更好的模型效果。本文通过电商推荐和金融反欺诈等案例,详解如何实现Embedding+XGBoost

weixin_28718641的博客 324

JAVA(多人聊天室) 最简单的控制台输出版,NIO单线程服务器,双线程客户端,妈妈再也不担心我不会写聊天室了

JAVA(多人聊天室) 最简单的控制台输出版,NIO单线程服务器,双线程客户端,妈妈再也不担心我不会写聊天室了。 一、惯例先上效果图: 二、代码(开袋即食) 2.1 服务端 public class NIOServer { static List<SocketChannel> channelList = new ArrayList<>(); public static void main(String[] args) { try {

weixin_44197478的博客 252

曙光服务器RAID配置避坑指南:MegaRAID SAS 9361-8i实战(含Foreign状态处理)

本文详细解析了曙光服务器搭配MegaRAID SAS 9361-8i控制器的RAID配置全流程,包括RAID0和RAID5的创建、Foreign状态处理及性能优化策略。特别针对磁盘迁移中的Foreign状态问题,提供了系统化的解决方案和高级恢复技巧,助力企业级IT运维提升存储配置的稳定性和可靠性。

weixin_29200741的博客 410

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

JAVA聊天室简易版

单线程。 SERVER端 1 import java.io.IOException; 2 import java.net.*; 3 import java.io.*; 4 public class Chatserver { 5 6 7 8 public static void main(String[] args) { ...

weixin_30642267的博客 125

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

基于socket编程---聊天室

单线程下聊天室 服务器端 package Singchatroom; import java.io.IOException; import java.io.PrintStream; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; public class SingServer ...

星 1363

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Java实现网络套接字编程---TCP实现服务端单线程以及多线程

网络套接字编程之TCP实现聊天–Java 客户端: package 套接字编程.TCP聊天; import java.io.*; import java.net.*; import java.util.Scanner; /** * Create with Darcula IDEA * Description: */ public class TCPClient { public static void main(String[] args) throws IOException {

qq_44330050的博客 494

畅所欲言

一、前言 微信、QQ早已经融入我们生活的点点滴滴。在学习了Java后,内心不禁想学习做一个简易聊天室,哪怕只是在命令行运行,只要实现聊天功能即可。心动不如行动 :) 二、运行环境 我用的系统是win10系统,所用的开发工具是IDEA,创建的是一个maven项目 三、大概框架及思路 说到QQ聊天,首先应该想到它是一款C/S架构的APP,而要实现聊...

LMD1998_2018的博客 318

java 多人聊天室_Java高效NIO之多人聊天室

系统功能使用NIO实现一个多人聊天室。聊天室包含以下功能。服务端处理客户连接新连接客户端注册名字,并进行重名判断新用户注册后向客户端广播用户列表接收客户端消息并单播或广播客户端向服务端发起连接用户注册名称接收服务端广播消息发送聊天消息,支持单播和广播系统设计系统类设计系统包括四个类,分别为:消息处理类:Message,处理消息的编解码消息枚举:MessageType,定义消息类型聊天服务端:Cha...

weixin_39640520的博客 256

java编程_socket_套接字_网络编程

============================================================                                            1.实现server和client模型程序 ============================================================  实现原

u013011518的专栏 646

NIO 聊天室代码演示部分(一)

NIO 聊天室代码演示部分(一) 非阻塞指IO事件本身不阻塞,但是获取IO事件的select()方法阻塞,类比:Redis底层,实现多路复用), 是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处理问题的有效方式。 客户端 import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.

seventeenliu的博客 212

java Sorcket实例

===========================================================                                            1.实现server和client模型程序 ============================================================  实现原理: ===

u011523968的专栏 1782

Socket编程快速入门实战

文章目录1. Socket编程(网络编程)具体步骤1. ServerSocket1. 构造方法2. accept方法2. Socket1. 构造方法2. 常用方法2. 单线程的聊天室1. 代码2. 注意点 1. Socket编程(网络编程) 在Java中,Socket为java.net包下的一个类; 中文翻译为套接字 ,套接字使用TCP提供了两台计算机之间的通信机制;客户端创建一个套接字,并尝试连...

eternal_yy 837

Java开发聊天室:你以为简单?用户一多,瞬间炸锅

文章浏览阅读2.4k次。本文介绍了如何使用Java创建一个简单的聊天室应用,涉及消息发送和接收、用户界面设计、数据管理和客户服务等方面。文章提供了服务器和客户端的Java代码示例

不忘初心,方得始终。不管前路如何艰难,只要心中有梦想,就有力量。 299
上一篇: 线程组
下一篇: Java BIO高并发编程
ProgramBoy001
博客等级 码龄6年 3粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值