1.Socket方式实现简易聊天效果

1.1服务端 Server.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package com.example.socket.server;
import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
public class Server {
    private static int port =9999;
    // 可接受请求队列的最大长度
    private static int backlog=100;
    // 绑定到本机的IP地址
    private static final String bindAddr = "127.0.0.1";
    //socket字典列表
    private static List<Socket> nodes= new ArrayList<Socket>();
    public static void main(String[] args) {
        try {
            ServerSocket ss = new ServerSocket(port, backlog,InetAddress.getByName(bindAddr));
            for(;;){
                //发生阻塞,等待客户端连接            
                Socket sc = ss.accept();
                nodes.add(sc);
                InetAddress addr = sc.getLocalAddress();
                System.out.println("create new session from "+addr.getHostName()+":"+sc.getPort()+"\n");            
               //针对一个Socket 客户端 启动两个线程,分别是接收信息,发送信息
                new Thread(new ServerMessageReceiver(sc,nodes)).start();
                new ServerMessageSender(sc).start();
            }            
        catch (IOException e) {
            e.printStackTrace();
        }
    }
}

1.2 消息接收端 ServerMessageReceiver.java

获取【下载地址】     【免费支持更新】

三大数据库 mysql  oracle  sqlsever   更专业、更强悍、适合不同用户群体
【新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统】

A 集成代码生成器 [正反双向(单表、主表、明细表、树形表,开发利器)+快速构建表单;
freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面、建表sql脚本,处理类,service等完整模块
B 集成阿里巴巴数据库连接池druid;
  数据库连接池  阿里巴巴的 druid。Druid在监控、可扩展性、稳定性和性能方面都有明显的优势
C 集成安全权限框架shiro ;
  Shiro 是一个用 Java 语言实现的框架,通过一个简单易用的 API 提供身份验证和授权,更安全,更可靠
D 集成ehcache 分布式缓存 ;
  是一个纯Java的进程内缓存框架,具有快速、精干等特点,广泛使用的开源Java分布式缓存。
E 集成微信接口开发;    F 图片爬虫技术;   G  SQL 编辑器, 支持复杂sql语句,生成报表,可以导出excel;
H websocket及时通讯技术;(即时聊天、及时站内信并声音提醒、实时在线管理、websocket及时刷新页面);
I redis 工具类接口;   H 多数据源(支持同时连接无数个数据库,可以不同的模块连接不同数的据库)
-------------------------------------------------------------------------------------------------------------------------
(后续加入Activiti5 工作流 )赠送一个jbpm工作流大型ERP系统(含OA、财务、分销)参考学习
-------------------------------------------------------------------------------------------------------------------------
1. 模块化、服务化,流程化,耦合度低、扩展性好,灵活度高,工具类封装完整,干净利索,调用简单方便
2. 提供Rest服务,支持APP手机应用(android和ios)接口、php、.net、易语言、VB等第三方接口调用
3. 全新高大尚HTML5+css3.0+bootstrap响应式开发界面UI,( 手机 PC 平板 截图在下面)、前沿.  spring restful 风格
4. 框架搭建完善成熟,在此基础上做过很多项目,系统具有并发处理、分布式、稳定性。
5. 系统功能完善,此为框架平台,文档、注释齐全,提供技术支持,专门供二次开发
6. 在此基础上可二次开发(OA、ERP、CRM ,医疗管理、金融、网站后台、APP后台、电子商务、商城(赠送UI)等等
7.我们这边是公司,主要业务是定制开发,  此系统为我们平时给客户做项目用的,经过很多项目实战考验

-------------------------------------------------------------------------------------------------------------------------系统模块

1.   权限管理:点开二级菜单进入三级菜单显示 角色(基础权限)和按钮权限
      角色(基础权限): 分角色组和角色,独立分配菜单权限和增删改查权限。
      按钮权限: 给角色分配按钮权限。
2.   按钮管理:自定义按钮管理,维护按钮权限标识等
3.   菜单管理:无限级别自定义菜单,自定义菜单图标,业务菜单和系统菜单分离,菜单状态显示隐藏(递归处理)
4.   数据字典:无限级别,支持多级别无限分类。内设编号,排序等
5.   组织机构:无限级别,公司or部门管理
6.   在线管理:websocket技术,实时检测在线用户列表,统计在线人数,可强制用户下线 同一用户只能在一个客户端登录
7.   系统用户:对各个基本的用户增删改查,单发、群发站内信邮件短信,导入导出excel表格,批量删除
8.   会员管理:对前台用户管理,分配会员级别,到期时间,状态,联系信息等资料
9.   代码生成:生成完整的模块代码,并保留生成记录模版,可复用 (超强悍开发利器)
      正向生成:  生成完整的模块,页面、处理类、service层、myabaits的xml 建表的sql脚本等
      反向生成:  任意连接其它数据库(mysql、oracle、sqlserver),根据表反射生成本系统的模块
10. 性能监控:监控整个系统的性能,SQL监控,SQL防火墙,URL监控,SPRING监控,SESSION监控等
11. 接口测试:POST or GET 方式检测系统接口,参数加密,json返回结果,计算服务器响应时间
12. 发送邮件:单发,群发邮件  
13. 置二维码:生成二维码图表保存到服务器 or  解析读取二维码内信息
14. 图表报表:柱状图、饼状图、折线图、各种图表大全
15. 地图工具:打开地图, 鼠标点击地图某位置获取经纬度坐标,根据经纬度计算两点距离
16. 打印测试:页面打印预览测试
17. 图片管理:对批量上传的图片统一管理 ,点击放大,可打开多个,自由切换,绚丽预览效果
18. 图片爬虫:输入某网址,爬出其图片显示在页面上,可以放大预览。可保存到服务器上,到图片管理里面
19. 站内信:收信箱和发信箱, websocket技术通讯技术做的及时收信提醒,可配置语音提示来信
20. 系统设置:修改系统名称,邮件服务器配置,短信账号设置,图片水印配置,微信配置
21. 及时聊天:打开聊天窗口,可群聊、一对一聊天
22. 表单构建:拖拽式快速自定义构建表单,组建元素丰富,有富文本、上传控件、下拉框等等
23. 主附结构:提供一个主表和明细表模块的例子(用本代码生成器生成的)
24. 员工管理:和组织机构部门管理,可以绑定登录系统用户,授权数据权限
  -------------------------------------------------------------------------------------------------------------------------数据库管理
25. 数据库备份:可备份单表、整库,支持本地和远程数据库备份(java界面编程技术,socket编程技术)
26. 备份定时器:quartz 2.2 强大的任务调度,多线程备份数据库,任务启动关闭异步操作
27. 数据库还原:历史备份记录,还原数据库 or 单表 ,统计备份时间和文件大小
28. SQL编辑器:强大的SQL编辑器,支持编辑语句复杂查询语句,生成动态报表,可导出excel
-------------------------------------------------------------------------------------------------------------------------
菜单权限:分配给每个角色不同的菜单权限, 每个角色看到的菜单不同,无限级别菜单
按钮权限:独立分配不同的角色不同的功能权限,增删改查权限分配具体到不同的菜单,自定义按钮管理
支持多用户分权限管理后台,  权限具体到不同的菜单不同的按钮

--------------------------------------------------------------------------------------------------------------信息模块(小项目代码中)

新闻管理:新闻的维护、发布、权重排序等 采用百度ueditor富文本框

公告管理:公告的维护、发布

广告管理:广告的维护、发布,状态维护,上传广告图片

友情链接:友情链接的维护、状态维护

特别推荐:特别推荐、状态维护

微信模块  (有指导视频  花生壳本地IP映射操作)

关注回复:微信用户关注公众号回复

文本回复:匹配关键词进行文本回复

图文回复:匹配关键词进行图文回复

应用命令:匹配关键词进行命令操作,例如微信发送命令,执行服务器重启、关机、锁定等操作

-------------------------------------------------------------------------------------------------------------------------

技术点

1. 导出 导入 excel 文件
2  导出word文件
3. IO 流上传下载文件
4. 群发邮件,可以发html、纯文本格式,可以发给任意邮箱(实现批量发送广告邮件)
5. 群发or单独 发送短信,支持两种第三方短信商接口
6. spring   aop  事物处理
7. 代码生成器 (freemarker), 代码 zip 压缩打包
8. MD5加密 SHA加密(登录密码用此加密)接口加密身份校验
9. 数据库连接池  阿里的 druid。Druid在监控、可扩展性、稳定性和性能方面都有明显的优势,支持并发
10.加入安全框架 shiro (登录授权)(session管理)
11.根据汉字 解析汉字的全拼(拼音)和首字母(导入excel到用户表,根据用户的汉字姓名生成拼音的用户名)
12.app接口@ResponseBody(支持与其它语言数据交互)
13.极光推送 (推送给APP及时消息,APP不启动也能收到)
14.微信接口(身份验证,文本、图文回复等) 微信远程控制服务器重启、锁定、其它应用程序
15.java Quartz2.2 任务调度
16.java websocket 即时通讯技术,点对点,群聊,单聊
17.新增Lucene全文检索
18.Base64传输图片
19.图片加水印(图片水印,文字水印)
20.生成 or  解析 二维码
21.HTML5 + JAVAEE  WebSocket 通信技术,WebSocket 验证用户登录,强制某用户下线
22.批量异步上传图片,可预览,有进度条,支持拖拽上传(百度webuploader )。列表动态滑动放大展示。
23.ehcache 自定义二级缓存 ,选择缓存存放目录,处理并发,增加系统性能
24.服务器内部GET POST 请求
25.uploadify 上传插件,单条、批量上传多线程,带进度条,异步,图片、视频, 其它文件格式均可上传
26.地图选点获取经纬度坐标,根据俩经纬度计算距离
27.tab标签页面功能,标签自由切换,不重复操作数据库
28.站内信语音提醒,js控制音频播放
29.百度富文本编辑器,可上传图片
30.网页爬虫技术,可根据网页地址爬取图片和网页标题等信息(爬取某商城图片保存本服务器)
31.redis 技术
32.多数据源技术
-------------------------------------------------------------------------------------------------------------------------

系统框架为:springmvc +spring+ mybaits  SSM 【 spring3.0 和 spring4.02  mybaits 3.2】

操作系统:windows  linux mac   等没有限制。   有 maven 和 javaee 版 jdk 1.6 1.7 1.8  tomcat 6 7 8

开发工具:myeclipse  eclipse idea 均可, 没有限制  数据库:oracle、msyql、sqlsever (2005及以上均支持)

赠送 同UI   springmvc + hibernate  SpringSecurity Lucene Quartz MySQL、Oracle、SQL Server

赠送 同UI  maven 分模块项目 springmvc + mybatis

系统演示视频:

http://www.tudou.com/programs/view/Qv1zuqAGWAA/   (视频一)土豆

http://www.tudou.com/programs/view/1z5hxi2aBRs/          (视频二)

链接:http://pan.baidu.com/s/1gdN32Ht 密码:xh7w  百度云 (视频一)

链接:http://pan.baidu.com/s/1nvgXotN 密码:nxw0  百度云 (视频二)

PC实物截图如下

登录界面背景用HTML5特效自动切换(百叶窗,幕布等多种切换方式)

转载于:https://blog.51cto.com/12011524/1843487

简易版聊天系统实现 Socket VS NIO两种实现方式相关推荐

  1. 疑似华为Mate X 5G版入网 将支持两种组网方式

    [TechWeb]日前,华为一款型号为TAH-AN00的手机在工信部入网,根据相关配置信息,这很有可能就是华为Mate X 5G版. 据工信部网站信息显示,这款华为TAH-AN00支持GSM.CDMA ...

  2. Android方法的概括,Android_Android中startService基本使用方法概述,Android中有两种主要方式使用Ser - phpStudy...

    Android中startService基本使用方法概述 Android中有两种主要方式使用Service,通过调用Context的startService方法或调用Context的bindServi ...

  3. android项目两种构建方式的整合(Eclipse/idea和Android Studio)

    android的两种构建方式 目前android主要有两种构建方式,一种基于ant(传统的),另一种是13年Google/IO上新推出基于Gralde的构建(Android Studio).从sdk的 ...

  4. Windows校验文件哈希hash的两种常用方式

    大家经常都到哪儿去下载软件和应用程序呢?有没想过下载回来的软件.应用程序或资源是否安全呢?在 Windows 10 和 Office 2016 发布当初,很多没权限的朋友都使用第三方网站去下载安装映像 ...

  5. (转)javabean是什么和总结javabean的两种使用方式

    一. javabean 是什么? Javabean 就是一个类,这个类就定义一系列 get<Name> 和 set<Name> 方法. So simple ! Javabean ...

  6. wdcp支持两种安装方式

    v3.2版本已发布,支持多PHP版本共存共用,支持SSL证书,更多可看论坛 v3版讨论区 更多安装说明请看 http://www.wdlinux.cn/bbs/thread-57643-1-1.htm ...

  7. SpringMVC基础学习之Controller的两种实现方式和RequstMapping注解的使用

    前言: 小伙伴们,大家好,我是狂奔の蜗牛rz,当然你们可以叫我蜗牛君,我是一个学习Java半年多时间的小菜鸟,同时还有一个伟大的梦想,那就是有朝一日,成为一个优秀的Java架构师. 这个SpringM ...

  8. 【JS提升】选项卡的两种实现方式

    一.选项卡的两种实现方式 <!DOCTYPE html> <html lang="en"><head><meta charset=&quo ...

  9. JavaBean是什么和总结JavaBean的两种使用方式

    转载于:http://www.blogjava.net/flysky19/articles/88180.html 一. javabean 是什么? Javabean 就是一个类,这个类就定义一系列 g ...

最新文章

  1. Flutter持久化存储之文件存储
  2. mysql 加入列,改动列,删除列。
  3. 一文整理IEEE问题汇总【IEEE PDF Checker】(更新中)
  4. C++使用二个栈实现queue(附完整源码)
  5. python对文件进行读写操作
  6. linux创建名称为学号的文件,Linux操作系统下用户管理及文件管理.doc
  7. dhcp网络服务的搭建和配置
  8. mysql原生sql语句_原生SQL语句
  9. Java线程之生命周期
  10. django 1.11.16之环境搭建
  11. 冒泡python代码_用Python写冒泡排序代码
  12. 旅游景区无线智能调频广播系统
  13. CC2530单片机P1寄存器说明
  14. 【MOOC】华中科技大学计算机组成原理慕课答案-第二章-数据表示
  15. 地铁FAS设备组成及系统结构
  16. linux-mount-iso
  17. python导入excel加入折线图_Python openpyxl 插入折线图实例
  18. MySQL相关语句使用注意点
  19. 外贸公司怎么做开发信,什么企业邮箱更适合发开发信呢?
  20. 搞定各种IE兼容问题,IE6,IE7,IE8,IE9,IE10 -

热门文章

  1. 如何做好网站建设需求分析
  2. 网站建设技术回顾:动态网页
  3. 针对wmp11以后版本的流媒体播放解决的问题~
  4. 我不会编程,但也不是一点都不会, 我稍微会一些
  5. 【蓝桥杯选拔赛真题27】python输出最后字符 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析
  6. 著名电子竞技游戏网站分析
  7. 关于移动硬盘或U盘数据丢失恢复工具
  8. 万能营销软件8.508版本
  9. FPGA基础知识18(在Quartus II下产生无源代码网表设计文件方法 QXP VQM 加密文件)
  10. H3C路由器如何配置Telnet服务?