您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > JAVA

java即时通讯功能实现

时间:2022-08-01 14:48:39  来源:  作者:杂文论

【1】socket服务器

/** * @Description 即时消息服务器 * @author xiao tang * @version 1.0.0 * @createTime 2022年01月23日 */public class IMSocketServer {    private static int PORT = 13;    public static void mAIn(String[] args) {        ServerSocket server = null;        try {            // 开启端口            server = new ServerSocket(PORT);            System.out.println("服务器已启动");            // 与客户端建立socket连接            Socket socket = server.accept();            System.out.println("客户端请求,创建连接成功");            // 写出器            PrintWriter writer2Client = new PrintWriter(socket.getOutputStream());            writer2Client.write("连接创建成功rn");            writer2Client.flush();            // 客户端读入器            Scanner scanner4Client = new Scanner(socket.getInputStream());            // 控制台读入器            Scanner scanner4Console = new Scanner(System.in);            // 等待客户端输入            while(true) {                // 读取客户端消息并打印                String msg4Client = scanner4Client.nextLine();                System.out.println("客户端:" + msg4Client);                System.out.print("服务端:");                // 获取控制台输入数据并发送到客户端                String msg4Console = scanner4Console.nextLine();                writer2Client.write(msg4Console + "rn");                writer2Client.flush();            }        } catch (IOException e) {            throw new MyRunTimeException("打开端口socket失败,端口=" + PORT + ", 异常信息=" + e.getMessage());        } finally {            try {                if (server != null) {                    server.close();                }            } catch (Exception e) {            }        }    }}

【2】socket客户端

/** * @Description 即时消息客户端 * @author xiao tang * @version 1.0.0 * @createTime 2022年01月23日 */public class IMSocketClient {    private static int PORT = 13;    public static void main(String[] args) {        try (Socket socket = new Socket()) {            // 与服务器端建立socket连接            socket.connect(new .NETSocketAddress("localhost", PORT), 3000);            // 新建读取器,写出器            Scanner scanner4Server = new Scanner(socket.getInputStream());            PrintWriter printWriter = new PrintWriter(socket.getOutputStream());            // 控制台读入器            Scanner scanner4Console = new Scanner(System.in);            System.out.println("连接成功,等待服务器响应");            // 等待服务器控制台输入            while(true) {                // 读取服务器响应并打印                String msg4Server = scanner4Server.next();                System.out.println("服务器:" + msg4Server);                System.out.printf("n客户端:");                // 客户端读取控制台输入,并发送到服务器                String msg4Console = scanner4Console.nextLine();                printWriter.write(msg4Console + "rn");                printWriter.flush();            }        } catch (Exception e) {            throw new MyRunTimeException("客户端通讯失败, 异常信息=" + e.getMessage());        }    }}

【3】通讯效果

 

【4】注意事项

1.发送消息的时候,一定要加上回车和换行符(rn),不然 scanner.nextLine() 无法识别到一行的结束,就会一直阻塞;



Tags:即时通讯   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
开源即时通讯IM框架MobileIMSDK的Uniapp端开发快速入门
► 相关链接: ① MobileIMSDK-Uniapp端的详细介绍 ② MobileIMSDK-Uniapp端的开发手册new(* 精编PDF版)一、理论知识准备您需要对Uniapp和Vue开发有所了解: 1)Uniapp 官方入门教...【详细内容】
2023-05-19  Search: 即时通讯  点击:(340)  评论:(0)  加入收藏
即时通讯协议选型:WebSocket协议
日常开发中我们出于保证连接的稳定性的目的,将应用拆分成了「主进程」和「通讯进程」,并为二者定义了相互通信的接口。即便如此,我们也只是实现了客户端一侧的进程间通信,而要实...【详细内容】
2022-10-20  Search: 即时通讯  点击:(437)  评论:(0)  加入收藏
OpenIM一个基于 Go 实现的开源即时通讯(IM)项目
项目介绍 功能模块介绍 产品特色 OpenIM优势 架构介绍 系统截图 开源地址https://gitee.com/mirrors/OpenIM...【详细内容】
2022-10-16  Search: 即时通讯  点击:(842)  评论:(0)  加入收藏
使用 Netty 实现一个 IM 即时通讯系统
一、目录介绍 功能梳理 具体实现二、需求梳理通过前面两章内容的学习,我们基本学会了如何使用 Netty 建立一个长连接,接下来我们就在这个基础上,实现一个单机版的 im 系统。主...【详细内容】
2022-09-23  Search: 即时通讯  点击:(413)  评论:(0)  加入收藏
元宇宙故宫、量子即时通讯……数字化赋能亮点纷呈
北京城市副中心报 | 记者 赵鹏数字化赋能贸易高质量发展,也是本届服贸会上体现出的一大主题。虚拟数字人带队云游紫禁城、VR全景体验博物馆、量子加密通话现场体验…&h...【详细内容】
2022-09-01  Search: 即时通讯  点击:(212)  评论:(0)  加入收藏
java即时通讯功能实现
【1】socket服务器/** * @Description 即时消息服务器 * @author xiao tang * @version 1.0.0 * @createTime 2022年01月23日 */public class IMSocketServer { private...【详细内容】
2022-08-01  Search: 即时通讯  点击:(624)  评论:(0)  加入收藏
即时通讯IM系统开发
我于2014年开启即时通讯的开发之路,历经从服务端到客户端,从第三方到自研,经历过诸多的研发难题,都一一破解。现将经验总结如下,希望对行业内从事IM开发的程序员有所帮助。一、基...【详细内容】
2022-04-21  Search: 即时通讯  点击:(717)  评论:(0)  加入收藏
局域网即时通讯应用对远程办公有哪些帮助?所有单位都适合用吗?
全世界每天发送超过2690亿封电子邮件,通过电子邮件进行交流会让员工感到不知所措。虽然电子邮件是必不可少的,但即时消息可以帮助员工减轻他们被收件箱淹没的烦躁和负担,它还可...【详细内容】
2021-11-03  Search: 即时通讯  点击:(329)  评论:(0)  加入收藏
如何快速开发一个跨平台的带即时通讯功能的APP?
前言目前,即时通讯在app中逐渐成了不可或缺的功能,尤其是在疫情期间,音视频会议功能更是火了一把,但是想自己开发即时通讯功能,却一点都不简单,如果用原生开发的话,那么Android、iO...【详细内容】
2021-07-29  Search: 即时通讯  点击:(408)  评论:(0)  加入收藏
基于GO语言实现web客服即时通讯与客服管理系统GO-FLY
go-fly基于GO语言实现的web客服即时通讯与客服管理系统。非常适合给自己的网站增加在线客服功能,代码简单也适合学习。Github地址:https://github.com/taoshihan1991/go-fly1....【详细内容】
2020-09-25  Search: 即时通讯  点击:(482)  评论:(0)  加入收藏
▌简易百科推荐
Java 8 内存管理原理解析及内存故障排查实践
本文介绍Java8虚拟机的内存区域划分、内存垃圾回收工作原理解析、虚拟机内存分配配置,以及各垃圾收集器优缺点及场景应用、实践内存故障场景排查诊断,方便读者面临内存故障时...【详细内容】
2024-03-20  vivo互联网技术    Tags:Java 8   点击:(18)  评论:(0)  加入收藏
如何编写高性能的Java代码
作者 | 波哥审校 | 重楼在当今软件开发领域,编写高性能的Java代码是至关重要的。Java作为一种流行的编程语言,拥有强大的生态系统和丰富的工具链,但是要写出性能优异的Java代码...【详细内容】
2024-03-20    51CTO  Tags:Java代码   点击:(25)  评论:(0)  加入收藏
在Java应用程序中释放峰值性能:配置文件引导优化(PGO)概述
译者 | 李睿审校 | 重楼在Java开发领域,优化应用程序的性能是开发人员的持续追求。配置文件引导优化(Profile-Guided Optimization,PGO)是一种功能强大的技术,能够显著地提高Ja...【详细内容】
2024-03-18    51CTO  Tags:Java   点击:(34)  评论:(0)  加入收藏
Java生产环境下性能监控与调优详解
堆是 JVM 内存中最大的一块内存空间,该内存被所有线程共享,几乎所有对象和数组都被分配到了堆内存中。堆被划分为新生代和老年代,新生代又被进一步划分为 Eden 和 Survivor 区,...【详细内容】
2024-02-04  大雷家吃饭    Tags:Java   点击:(63)  评论:(0)  加入收藏
在项目中如何避免和解决Java内存泄漏问题
在Java中,内存泄漏通常指的是程序中存在一些不再使用的对象或数据结构仍然保持对内存的引用,从而导致这些对象无法被垃圾回收器回收,最终导致内存占用不断增加,进而影响程序的性...【详细内容】
2024-02-01  编程技术汇  今日头条  Tags:Java   点击:(78)  评论:(0)  加入收藏
Java中的缓存技术及其使用场景
Java中的缓存技术是一种优化手段,用于提高应用程序的性能和响应速度。缓存技术通过将计算结果或者经常访问的数据存储在快速访问的存储介质中,以便下次需要时可以更快地获取。...【详细内容】
2024-01-30  编程技术汇    Tags:Java   点击:(78)  评论:(0)  加入收藏
JDK17 与 JDK11 特性差异浅谈
从 JDK11 到 JDK17 ,Java 的发展经历了一系列重要的里程碑。其中最重要的是 JDK17 的发布,这是一个长期支持(LTS)版本,它将获得长期的更新和支持,有助于保持程序的稳定性和可靠性...【详细内容】
2024-01-26  政采云技术  51CTO  Tags:JDK17   点击:(100)  评论:(0)  加入收藏
Java并发编程高阶技术
随着计算机硬件的发展,多核处理器的普及和内存容量的增加,利用多线程实现异步并发成为提升程序性能的重要途径。在Java中,多线程的使用能够更好地发挥硬件资源,提高程序的响应...【详细内容】
2024-01-19  大雷家吃饭    Tags:Java   点击:(111)  评论:(0)  加入收藏
这篇文章彻底让你了解Java与RPA
前段时间更新系统的时候,发现多了一个名为Power Automate的应用,打开了解后发现是一个自动化应用,根据其描述,可以自动执行所有日常任务,说的还是比较夸张,简单用了下,对于office、...【详细内容】
2024-01-17  Java技术指北  微信公众号  Tags:Java   点击:(108)  评论:(0)  加入收藏
Java 在 2023 年仍然流行的 25 个原因
译者 | 刘汪洋审校 | 重楼学习 Java 的过程中,我意识到在 90 年代末 OOP 正值鼎盛时期,Java 作为能够真正实现这些概念的语言显得尤为突出(尽管我此前学过 C++,但相比 Java 影响...【详细内容】
2024-01-10  刘汪洋  51CTO  Tags:Java   点击:(82)  评论:(0)  加入收藏
站内最新
站内热门
站内头条