局域网聊天Chat(马士兵视频改进版)

Github地址: https://github.com/BenDanChen/Chat

Chat

小小的聊天系统,主要是跟着网上的马士兵老师的公开视频然后再自己反思有什么地方需要改进的地方,然后大体功能完成后又按照自己的想法进行了重构,程序比较小,只有五百行左右,实现的功能如下:

  • 局域网聊天(需要有一个服务器,是传统的BS架构的)
  • 进行了检测避免2B恶意刷屏(记录上次发消息时间,设定最小发送消息的间隔)
  • 支持悄悄话,即单独的发送消息给某一个用户,使用【:to who message】的命令格式
  • 客户端可以取一个昵称(不允许重名,默认会随机会分配一个名字),使用【:nickname newName】的命令格式
  • 客户端可以设置自己的聊天小尾巴,使用【:tail newTail】的格式
  • 改nickname的时候全体都会收到通知,但是改聊天小尾巴则不会
  • 自己的昵称会显示在标题栏上
  • 服务器和客户端之间可以通过简单的指令交换进行行为控制

预览效果:

这是一个悲伤的故事...

时间: 2024-10-12 20:16:49

局域网聊天Chat(马士兵视频改进版)的相关文章

关于马士兵的java教学视频

多年前同时期的视频看过很多,马士兵,张孝祥,王勇,还有很多. 马士兵是唯一一个在当时看来讲课是让初学者明白的一个人,这里说的其它人不是不让别人明白,主要在这方面的体验比马士兵略差一点.尤其是在ppt上画程序执行时内存变化图,至今依然难以忘怀,时常有重温经典的冲动,所谓经典就是经过岁月的洗礼,他的那份醇香或价值依然吸引着你不断的回温.马士兵讲课的特点是嗓音清爽,抑扬顿挫,段子精美,技巧过硬,下手快,准,狠,思路直,快,精.虽然也有很多的人批评说,讲的有多处的错误,其它等等.关于错误我的看法:授课只

Linux socket跨局域网聊天和文件传输

一直想写一个跨局域网聊天和文件传输,以及视频聊天的软件,这两天刚好闲着没啥事就把代码写完了,代码已经上传至github:https://github.com/vinllen/chat 其实之前想法P2P模式,P2P的话必须穿透NAT,现在的NAT有4种模式: 完全圆锥型NAT 受限圆锥型NAT 端口受限圆锥型NAT 对称NAT(双向NAT) 维基百科给出的定义如下: 1.Full cone NAT,亦即著名的一对一(one-to-one)NAT 一旦一个内部地址(iAddr:port1)映射到外

马士兵hibernate(原始笔记)

马士兵hibernate(原始笔记) 课程内容 1        HelloWorld a)   Xml b)   annotation 2        Hibernate原理模拟 - 什么是O/R Mapping以及为什么要有O/R Mapping 3        常见的0/R框架(了解) 4        hibernate基础配置(重点) 5        ID生成策略(重点 AUTO) 6        Hibernate核心开发接口介绍(重点) 7        对象的三种状态(了

【Python】iichats —— 命令行下的局域网聊天程序

转载请声明出处:http://www.cnblogs.com/kevince/p/3941728.html   ——By Kevince ii系列工具第三弹,命令行下的局域网聊天程序 原理: 程序启动时向全网(255.255.255.255)BACKPORT端口广播自己的主机名以及状态(上线). 如果接受收到的上线状态,则将其加入通信列表,同时返还一个数据包,使自己也将对面加入其通信列表. 程序退出时向全网广播自己的下线状态,如果收到该下线状态则将其从自己的通信列表中删除 为了防止在输入过程中被

[转载]马士兵Java视频教程 —— 学习顺序

书(Java核心编程)+视频..这样学感觉比较好.. 原文地址:-- 学习顺序" href="http://blog.sina.com.cn/s/blog_8a705bf701015lz5.html" target="_blank">马士兵Java视频教程 -- 学习顺序作者:习惯 第一部分:J2se学习视频内容包括: 尚学堂科技_马士兵_JAVA视频教程_JDK5.0_下载-安装-配置 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第01

DNS服务器配置小结(参考私房菜,马哥视频)

DNS原理方面的东西就不介绍了,具体的可以看私房菜的DNS服务器部分,讲的很好.主要跟着私房菜的思路在虚拟机中重新实践下了吧 a)需要注意一下几个重要的文件 /etc/named.conf主配置文件,有区域的定义,一定要记住 /var/named/这个文件夹下存放区域数据文件 /etc/rc.d/init.d/named命令可以使用reload,start,restart,stop /var/log/messages登录日志信息 b)几个检查是否有语法错误的命令named-checkconf;n

Qt局域网聊天

原文地址 https://blog.csdn.net/tsvico/article/details/94721560 本次设计是一个简易的局域网聊天,功能设计主要分为群聊和私聊两部分,每部分都支持基础聊天以及文件传输功能,私聊页面相较于主页面支持更多功能,例如表情发送.窗口抖动,语音聊天等.参考了<Qt及Qt Quick开发实战精解>中第5章群聊实例,在群聊的基础设计了私聊这部分内容以及其他一些功能.下面介绍下整体的设计以及实现. 本文档将依据启动次序来写 设计时这里用的是主机的ip地址,可使

局域网聊天【带照片】

package com.kaige123;/** * 消息页面 * @author 凯哥 * */public class MessageFrame extends JFrame {    //把消息分成两部分    private JSpinner spinner = new JSpinner();    //发送文本框    public JTextArea textArea = new JTextArea();    //网络名称    private String uname="&quo

java Swing局域网聊天软件+ 情侣电脑钢琴

2013年的时候刚刚看完毕向东老师的黑马程序员教程,对swing产生了很浓厚的兴趣,很多朋友应该和我有同样的感受吧!学了这么久java一直都面对 乌漆麻黑的dos窗口搞,终于能做个窗口了,心里好开心的.像看见了光明似的.记得第一次写个程序弹出个Frame的时候心里真的是很激动的.后来我在Swing中花了很多时间去研究,毕竟没有老师指导所以不知道Swing其实也不值得花那么多时间.对于Swing做为了解就好了.有空余时间看看还不错. 不过虽然在Swing耽误了许多时间,但是也做了点东西玩玩咯. 写