文章目录

  • 前言
    • 一、私聊对象的指定
    • 二、程序的改变
  • 总结

前言

昨天我写了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编程---聊天室终极版-私聊群聊相关推荐

  1. Python Socket 编程——聊天室示例程序

    上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和客户端的代码了解基本的 Python Socket 编程模型.本文再通过一个例子来加强一下对 Socket 编程的 ...

  2. java多人聊天室实现(可群聊私聊/添加好友/发送文件)

    一.功能介绍 本程序基于websocket实现,程序主要借鉴参考 https://www.cnblogs.com/csu-lmw/p/10981374.html,并在原程序的基本框架下扩充了添加好友以 ...

  3. java socket编程聊天室_Java Socket通信之聊天室功能

    Java Socket通信之聊天室功能 发布时间:2020-10-17 14:36:00 来源:脚本之家 阅读:73 作者:LY_624 本文实例为大家分享了Java Socket聊天室功能的具体代码 ...

  4. python多线程+socket实现聊天室(最终版)

    文章目录 一. 成果预览 二.源码分享 总结 gif动图中的内容bug已被修改,如下项目结构是最新版本内容,代码已更新 一. 成果预览 二.源码分享 目录结构 main.py from src imp ...

  5. Agora RTM,声网sdkdemo,在线聊天室,一对一,群聊

    appid或者其他功能 可参考 声网https://docs.agora.io/cn/Real-time-Messaging/API%20Reference/RTM_web/index.html js ...

  6. JavaSE项目之聊天室swing版

    引子: 当前,互联网 体系结构的参考模型主要有两种,一种是OSI参考模型,另一种是TCP/IP参考模型. 一.OSI参考模型,即开放式通信系统互联参考模型(OSI/RM,Open Systems In ...

  7. SpringBoot与webSocket实现在线聊天室——实现私聊+群聊+聊天记录保存

    SpringBoot与webSocket实现在线聊天室--实现私聊+群聊+聊天记录保存 引用参考:原文章地址:https://blog.csdn.net/qq_41463655/article/det ...

  8. 【java毕业设计】基于java+原生Sevlet+socket的聊天室系统设计与实现(毕业论文+程序源码)——聊天室系统

    基于java+原生Sevlet+socket的聊天室系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+原生Sevlet+socket的聊天室系统设计与实现,文章末尾附有本毕业设 ...

  9. Android 基于Socket的聊天室

    原文地址为: Android 基于Socket的聊天室 Socket是TCP/IP协议上的一种通信,在通信的两端各建立一个Socket,从而在通信的两端之间形成网络虚拟链路.一旦建立了虚拟的网络链路, ...

  10. 基于socket的聊天室实现原理

    基于socket的聊天室,目前还比较少见,国内比较知名的有网易和碧海银沙聊天室.这种聊天室的特点很明显,不象CGI聊天室那样不管有没有人发言,都会定时刷新.而是当有人发言时,屏幕上才会出现新聊天内容, ...

最新文章

  1. CSS text-transform 属性
  2. 币圈老人李启元站队BCH,背后的原因是什么?
  3. mysql gtid 搭建主从_MySQL5.7 - 基于GTID复制模式搭建主从复制
  4. Rxjava使用四部曲 + 相应衍生
  5. 神策数据第五届“星斗奖”榜单公布!
  6. unity3d曲线text文本
  7. rest_framework02:修改数据/校验钩子/read_only和write_only
  8. 【操作系统/OS笔记02】操作系统的历史、操作系统结构
  9. ITIL 4和DevOps的关系?
  10. 电视助手 Android,无屏助手TV版|无屏助手电视版 V4.0.3 安卓版 下载_当下软件园_软件下载...
  11. java-php-python-ssm在线教学质量评价系统计算机毕业设计
  12. 小鹤输入法及练习工具推荐
  13. 为什么CU和DU要分离?
  14. 行人重识别多个数据集格式统一为market1501格式
  15. VirtualBox复制虚拟机(同电脑、跨电脑)
  16. 查看oracle版本及补丁,查看oracle版本和补丁
  17. iOS内购(IAP,In App Purchases-在APP内部支付),设置及使用
  18. 【UML】-- 活动图练习题含答案(打印合同、请假、公司评审、签订合同、软件发布、会见客户)
  19. 磨人的小妖精 别让我遇到你
  20. jzoj3461. 小麦亩产一千八 斐波拉契数列

热门文章

  1. c语言字符串转16进制及16进制转字符串
  2. MAC 安装Maven
  3. 大学计算机—计算思维导论 中国大学mooc 哈尔滨工业大学 测验题目和答案
  4. 谈USB重定向的方式
  5. java输入输出流实例代码
  6. 如何用好项目管理工具
  7. linux DSA 开发上手笔记(一)
  8. java集合试题_java集合练习题及答案.doc
  9. 硅谷大佬们屡次推荐的10本书,你看过几本?
  10. ZigBee协议栈的串口实验