Socket编程---聊天室终极版-私聊群聊
文章目录
- 前言
- 一、私聊对象的指定
- 二、程序的改变
- 总结
前言
昨天我写了Socket编程的聊天室项目 点击查看,不过没有放私聊功能,今天来加上
一、私聊对象的指定
想要私聊我们需要先指定一个对象,怎么指定呢,我们想到每一条消息发送都需要进过服务器,我们可以在消息中指定私聊对象
那服务器如何区分对象名称和消息内容的,这里就需要我们来约定一个格式、
此处采用<对象名>@<消息> 的格式
二、程序的改变
应该想到,本次程序代码的改变全部发生在服务器端,只需要对接收的信息做进一步分析,便可以做出私聊还是群聊的动作
首先,建立一个Map,用来存储对象host 以及PrintWriter对象的对应关系
然后在服务器接收到一条消息 后,在原本的判断后面加一句如果line包含“@”就说明这句是私聊信息,代码如下:
else if(line.contains("@")){//私聊String[] data=line.split("@");String obClient=data[0];line=data[1];PrivateSend(obClient,line);//这个方法是我抽出来的私聊方法continue;//注意私聊的话就到这句结束即可,不需要走下边的群聊全部转发流程}
私聊方法PrivateSend()
obClient表示私聊对象的host名称,后面的mes表示要发送的信息
private void PrivateSend(String obClient,String mes){PrintWriter printWriter = allSocket.get(obClient);printWriter.println("来自"+host+"的私聊:"+mes);//对客户端显示System.out.println(host+"对"+obClient+"私聊:"+mes);//对服务器端展示}
总结
私聊确实没难度,稍稍掌握一些套路即可,如果你没想法,那你还得学
Socket编程---聊天室终极版-私聊群聊相关推荐
- Python Socket 编程——聊天室示例程序
上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和客户端的代码了解基本的 Python Socket 编程模型.本文再通过一个例子来加强一下对 Socket 编程的 ...
- java多人聊天室实现(可群聊私聊/添加好友/发送文件)
一.功能介绍 本程序基于websocket实现,程序主要借鉴参考 https://www.cnblogs.com/csu-lmw/p/10981374.html,并在原程序的基本框架下扩充了添加好友以 ...
- java socket编程聊天室_Java Socket通信之聊天室功能
Java Socket通信之聊天室功能 发布时间:2020-10-17 14:36:00 来源:脚本之家 阅读:73 作者:LY_624 本文实例为大家分享了Java Socket聊天室功能的具体代码 ...
- python多线程+socket实现聊天室(最终版)
文章目录 一. 成果预览 二.源码分享 总结 gif动图中的内容bug已被修改,如下项目结构是最新版本内容,代码已更新 一. 成果预览 二.源码分享 目录结构 main.py from src imp ...
- Agora RTM,声网sdkdemo,在线聊天室,一对一,群聊
appid或者其他功能 可参考 声网https://docs.agora.io/cn/Real-time-Messaging/API%20Reference/RTM_web/index.html js ...
- JavaSE项目之聊天室swing版
引子: 当前,互联网 体系结构的参考模型主要有两种,一种是OSI参考模型,另一种是TCP/IP参考模型. 一.OSI参考模型,即开放式通信系统互联参考模型(OSI/RM,Open Systems In ...
- SpringBoot与webSocket实现在线聊天室——实现私聊+群聊+聊天记录保存
SpringBoot与webSocket实现在线聊天室--实现私聊+群聊+聊天记录保存 引用参考:原文章地址:https://blog.csdn.net/qq_41463655/article/det ...
- 【java毕业设计】基于java+原生Sevlet+socket的聊天室系统设计与实现(毕业论文+程序源码)——聊天室系统
基于java+原生Sevlet+socket的聊天室系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+原生Sevlet+socket的聊天室系统设计与实现,文章末尾附有本毕业设 ...
- Android 基于Socket的聊天室
原文地址为: Android 基于Socket的聊天室 Socket是TCP/IP协议上的一种通信,在通信的两端各建立一个Socket,从而在通信的两端之间形成网络虚拟链路.一旦建立了虚拟的网络链路, ...
- 基于socket的聊天室实现原理
基于socket的聊天室,目前还比较少见,国内比较知名的有网易和碧海银沙聊天室.这种聊天室的特点很明显,不象CGI聊天室那样不管有没有人发言,都会定时刷新.而是当有人发言时,屏幕上才会出现新聊天内容, ...
最新文章
- CSS text-transform 属性
- 币圈老人李启元站队BCH,背后的原因是什么?
- mysql gtid 搭建主从_MySQL5.7 - 基于GTID复制模式搭建主从复制
- Rxjava使用四部曲 + 相应衍生
- 神策数据第五届“星斗奖”榜单公布!
- unity3d曲线text文本
- rest_framework02:修改数据/校验钩子/read_only和write_only
- 【操作系统/OS笔记02】操作系统的历史、操作系统结构
- ITIL 4和DevOps的关系?
- 电视助手 Android,无屏助手TV版|无屏助手电视版 V4.0.3 安卓版 下载_当下软件园_软件下载...
- java-php-python-ssm在线教学质量评价系统计算机毕业设计
- 小鹤输入法及练习工具推荐
- 为什么CU和DU要分离?
- 行人重识别多个数据集格式统一为market1501格式
- VirtualBox复制虚拟机(同电脑、跨电脑)
- 查看oracle版本及补丁,查看oracle版本和补丁
- iOS内购(IAP,In App Purchases-在APP内部支付),设置及使用
- 【UML】-- 活动图练习题含答案(打印合同、请假、公司评审、签订合同、软件发布、会见客户)
- 磨人的小妖精 别让我遇到你
- jzoj3461. 小麦亩产一千八 斐波拉契数列