目的:    Java平台下的内部组件之间的通信.    1.WebService 由于感觉本身Java平台下的Web Service标准就不够统一,相互之间的调用就会有一些问题,更不用说与.net等其他平台了.而且WebService也是对HTTP请求的一次封装,效率上肯定会有损失,所以就不考虑用WebService了.    2.Socket,包括Java原生的Socket API和nio,本身都很好,效率也会不错,它们之间的区别大概就是资源占用上了.但是使用Socket的通信,有几个比较复…
直接上代码.关于原理和主要的API以后在说.先能跑通了在说. 主要的包:mina-core-2.0.0.jar[到官网上下载完整项目包里面还有文档和依赖包],jcl-over-slf4j-1.5.11.jar,slf4j-api-1.5.11.jar,slf4j-nop-1.5.11.jar这三个是mina使用的日志包.前面二个mina项目包里有.最后一个到官网上下吧. 服务器类: public class MinaServer { ;// 定义监听端口 public static void m…
mina是非常好的C/S架构的java服务器,这里转了一篇关于它的使用感受. 前言MINA是Trustin Lee最新制作的Java通讯框架.通讯框架的主要作用是封装底层IO操作,提供高级的操作API.比较出名的通讯框架有C++的ACE.Python的Twisted,而Java的通讯框架还有QuickServer.Netty2.Cindy.Grizzly等. 2004年6月,Trustin Lee发布了一个通讯框架Netty2,是Java界第一个事件模型架构的通讯框架,Cindy也从中借鉴了不少…
提起mock大家应该就知道是干嘛用的了,再次再介绍一种简单的方式,基于moco的mock server.步骤很简单: 1. 首先,要下载个moco的jar0_1482402640757_moco-runner-0.10.2-standalone.jar 到桌面 2. 在桌面建一个json文件,例如:[{ "request" : { "uri" : "/hello" }, "response" : { "text&qu…
简单的Http Server 使用Libevent内置的http相关接口,可以很容易的构建一个Http Server,一个简单的Http Server如下: #include <event2/event.h> #include <event2/buffer.h> #include <event2/http.h> #include <Winsock2.h> #include <stdlib.h> #include <stdio.h> i…
原文:C# .net基于Http实现web server(web服务) 什么是 web server?  百度百科是这么解释的: Web Server中文名称叫网页服务器或web服务器.WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务. Web服务器可以解析(handles)HTTP协议.当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response),例如送回一个HTML页面.为了处理一个请求(request),W…
Apache Ftp Server:(强调) Apache Ftp Server 是100%纯Java的FTP服务器软件,它采用MINA网络框架开发具有非常好的性能.Apache FtpServer 既可以嵌到Java应用中使用,也可以做为Windows服务或Unix/Linux Daemon单独运行.此外还提供与Spring 相集成的模块. Apache Ftp Server 应用: apache ftp server :主要应用场景大的分为两方面: 作为单独的ftp服务器(这个我在前面两篇已…
apache的简单校验分为两种,一直是前面提到的properties的校验,具体参考:apache ftp server的简单入门(properties验证) 今天来说一种数据库的校验,这种方式在项目中更加常用: 具体步骤如下: 第一步:下载解压(我在window上演示,linux上就启动命令由bat的命令换成sh命令即可,不会的自己百度,网上有很多资料) 第二步:进入%ftp-server%/res中修改一下数据库文件,并在数据库中创建对于的表    ftpd-db.sql 到这儿还没结束:…
欢迎阅读我的开源项目<迷你微信>服务器与<迷你微信>客户端 序言 帖主和队友仿制了一个简单版的微信,其中,队友是用Unity3D做前段,帖主用Java的Mina.Hibernate和Spring做的后端,前段的博客链接将在队友写好后提供.下面先讲讲帖主在编写前后的经历和遇到的问题(通篇都是废话╮(╯▽╰)╭,请直接戳下一篇). 一开始帖主的队友提议做仿制一个微信的时候,帖主稍微一想,微信不就是一个好友名单,然后消息对发么,还有啥?哦,还有个朋友圈,也就这点东西吧.后来经过讨论,发现…
欢迎阅读我的开源项目<迷你微信>服务器与<迷你微信>客户端 前言 <迷你微信>服务器端是使用Java语言,Mina框架编写的,一个良好的架构关系到后期迭代的方便程度和异常的出现频率问题,其中,解耦是一个很重要的关注点.帖主虽然没有做过大的研究,不过目前这种架构还是能满足需求的. 整体架构 废话不多说,先上图! 从上往下看,首先Server类开启了整个服务器进程,在这里,并没有将Spring给画出来,因为Spring只是一个框架. 在Server类的Main函数中,调用了…
缘由 日常工作中经常遇到类似的问题:把某个服务器上的某些指定的表同步到另外一台服务器.类似需求用SSIS或者其他ETL工作很容易实现,比如用SSIS的话就可以,但会存在相当一部分反复的手工操作.建源的数据库信息,目标的数据库信息,如果是多个表,需要一个一个地拉source和target,然后一个一个地mapping,然后运行实现数据同步.然后很可能,这个workflow使用也就这么一次,就寿终正寝了,却一样要浪费时间去做这个ETL. 快速数据同步实现 于是在想,可不可能快速实现类似需求,尽最大程…
6.模拟群集故障转移 6.1 模拟手动故障转移(1+1) 模拟手动故障转移的目的有以下几点: 测试群集是否能正常故障转移 测试修改端口是否能同步到备节点 测试禁用full-text和Browser服务对故障转移是否有影响 测试禁用管道协议对故障转移是否有影响 以上问题在“基于iSCSI的SQL Server 2012群集测试(二)--SQL群集安装后初始化配置测试”已经有说明,以下是在设置完成后故障转移的整个过程.正常完成. 活动节点的服务情况 非活动节点的服务情况 手动故障转移各个状态过程 6…
在今天的文章里,我想谈下对于即席SQL语句(ad-hoc SQL statements),SQL Server使用的简单参数化(Simple Parameterization)的一些特性和副作用.首先,如果你的SQL语句包含这些,简单参数化不会发生: JOIN IN BULK INSERT UNION INTO DISTINCT TOP GROUP BY HAVING COMPUTE Sub Queries 一般来说,如果你处理所谓的安全执行计划(Safe Execution Plan),SQL…
基于DOM的XSS注入漏洞简单解析http://automationqa.com/forum.php?mod=viewthread&tid=2956&fromuid=21…
1.MINA框架简介 MINA(Multipurpose Infrastructure for Network Applications)是用于开发高性能和高可用性的网络应用程序的基础框架.通过使用MINA框架可以可以省下处理底层I/O和线程并发等复杂工作,开发人员能够把更多的精力投入到业务设计和开发当中.MINA框架的应用比较广泛,应用的开源项目有Apache Directory.AsyncWeb.Apache Qpid.QuickFIX/J.Openfire.SubEthaSTMP.red5…
怎样基于谷歌地图的Server缓存公布Image Service服务 第一步:下载地图数据 下载安装水经注万能地图下载器,启动时仅仅选择电子.谷歌(这里能够依据自己的须要选择).例如以下图所看到的. 找到成都后框选下载成都区域,例如以下图所看到的. 双击新建任务,选择1到19级,例如以下图所看到的. 第二步:导出 ArcGIS Server 服务 下载完毕后,询问是否导出.点击选择"是":然后在列表的任务例表中选择"成都".再点击"确定"显示&q…
===================================================== 最简单的基于libVLC的例子文章列表: 最简单的基于libVLC的例子:最简单的基于libVLC的视频播放器 最简单的基于libVLC的例子:最简单的基于libVLC的视频播放器(图形界面版) 最简单的基于libVLC的例子:最简单的基于libVLC的推流器 ===================================================== 本文记录基于libVL…
===================================================== 最简单的基于libVLC的例子文章列表: 最简单的基于libVLC的例子:最简单的基于libVLC的视频播放器 最简单的基于libVLC的例子:最简单的基于libVLC的视频播放器(图形界面版) 最简单的基于libVLC的例子:最简单的基于libVLC的推流器 ===================================================== 本文记录使用libVL…
一个基于 easyui, vue 和 maptalks 的简单地图应用 做了一个小应用,结合 easyui , vue 和 maptalks 的简单的地图应用.可以用来画图,什么的. 地址…
欢迎阅读我的开源项目<迷你微信>服务器与<迷你微信>客户端 前言 在一个程序的迭代过程中,复杂度渐渐上升,可能会出现一些跨模块的调用的需求,若是直接得到引用来进行使用,会导致模块间的耦合度越来越高,消息机制是一种用于解耦这种耦合度高模块的好方法,它的使用非常灵活便利,可以解决一对多(一个发送者,多个接受者)和需求频繁的变更,甚至于,在添加新的需求时可以完全的不改动旧的代码.在Java中消息机制可以用观察者模式来实现. 前缘未了 在[迷你微信]基于MINA.Hibernatye.Sp…
欢迎阅读我的开源项目<迷你微信>服务器)与<迷你微信>客户端 前言 在上一篇中,我们讲到了<迷你微信>服务器)的主体架构,还讲到了如何在现有功能上进行拓展,但是拓展的其中一个关键点,就是如何区分客户端的请求类型(如:登陆?注册?)?我们将通过对传输协议的制定标志位进行检测来确定客户端的请求类型,在本项目中,我们使用Protobuf来定义传输协议而已,若是您对于Protobuf还不甚了解,可以先学习下[迷你微信]基于MINA.Hibernatye.Spring.Proto…
在前面的文章中讲了基于NIO实现的Server/Client.本文就讲讲基于同步堵塞式I/O实现的Server/Client好与前面的NIO中的Server/Client进行对照. 网络编程中须要解决的两个主要问题: 1.怎样准确的定位网络上的一台或多台主机. 2.找到主机后怎样可靠高效的进行传输数据. 而解决这两个问题的主要方式就是非常好的运用TCP/IP协议.所以我们所做的网络编程都是基于TCP/IP来实现的. 基于Socket的java网络编程的通信过程: server:使用ServerS…
接下来,我们開始http部分的开发. 在此之前.有必要先学习一下HTTP协议- http1.1 的rfc文档:http://www.ietf.org/rfc/rfc2616.txt 简单介绍 超文本传输协议(Hypertext Transfer Protocol.简称HTTP)是应用层协议,是一种请求/响应式的协议,即一个client与server建立连接后,向server发送一个请求,server接到请求后.给予相应的响应信息. HTTP 请求报文 HTTP 请求报文由请求行.请求头部.空行…
转发地址:https://www.iteye.com/blog/elim-2394762 2 基于Aspectj注解的Spring Aop简单实现 Spring Aop是基于Aop框架Aspectj实现的,它不是完完全全的对Aspectj框架进行扩展和改造,而是利用Aspectj里面的一些功能来实现自己的Aop框架,其中就包括对Aspectj提供的注解的解析.之前已经提过Spring Aop和Aspectj实现的Aop之间的差别,这里就不再赘述.本文主要描述的是如何利用Aspectj提供的注解来…
由于 Window Server 环境下,VisualSVN Server Community 版本只支持 15 个同时在线用户,所以彻底放弃 Windows Server,在 Linux Server 上基于 subversion 建立 SVN server, 1. 首先查看是否已安装 subversion $ svnserve --version 2. 如果没有,需要先安装 $ sudo yum install subversion 3. 新建一个文件夹,用于存放所有 svn repo,比如…
基于Skyline与ArcGIS Server的二三维联动功能实现主要利用WEB技术.ArcGIS for JavaScript.Skyline 二次开发以及ArcGIS 10.1 桌面工具. 利用ArcGIS桌面工具制作地图文档.发布地图服务并进行地图切片,这样就得到了实验用的二维电子地图数据.地图文档和切片的质量直接影响着二三维联动功能实现的效果.功能实现过程中,主要有Skyline三维平台的鼠标滚轮.鼠标抬起事件以及二维电子地图的鼠标拖拽.鼠标按下和范围改变激发的事件. 在开启二三维联动时…
基于redis有序集合,实现简单的延时任务 延时任务的场景很多,开发过程中我们经常会遇到,比如说: 1.订单未付款,5分钟后自动取消,这是电商网站非常普遍的需求: 2.用户创建订单不付款,3分钟后自动发短信.微信消息提醒: 3.会员到期提醒 等等,这些都算延时任务提醒. 实现延时任务功能的方式很多,我们公司的业务不大,没打算用中间件,所以,我干脆直接用redis实现. redis实现延时任务有2种方式,一种是根据有序集合去实现,还有种是根据键的过期,去触发延时任务,两个方式都可以,今天我主要说的…
一.基本原理 有时候我们需要实现一个公共的模块,需要对多个其他的模块提供服务,最常用的方式就是实现一个Socket Server,接受客户的请求,并返回给客户结果. 这经常涉及到如果管理多个连接及如何多线程的提供服务的问题,常用的方式就是连接池和线程池,基本流程如下: 首先服务器端有一个监听线程,不断监听来自客户端的连接. 当一个客户端连接到监听线程后,便建立了一个新的连接. 监听线程将新建立的连接放入连接池进行管理,然后继续监听新来的连接. 线程池中有多个服务线程,每个线程都监听一个任务队列,…
在上一篇文章<基于mina框架的GPS设备与服务器之间的交互>中,提到之前一直使用superwebsocket框架做为IIS和APP通信的媒介,经常出现无法通信的问题,必须一天几次的手动回收程序池,甚至重起服务器,通常周末接到一个陌生电话,就是说客户端无法登录了,说多了都是泪.痛定思痛,开始找解决方案,其实superwebsocket以IIS做为宿主,就注定他可能不稳定了,当然,它部署非常方便:为了稳定,我开始尝试使用SuperSocket,当然,这也注定了后期部署会麻烦些:生活就是这样哈,鱼…
一.实现功能 1.服务器端选择待发送的文件,可以是多个 2.开启服务器,支持多客户端接入,能够实时显示每个客户端接入状态 3.等待所有客户端都处于已连接状态时,依次发送文件集给每个客户端,显示每个客户端发送进度 4.发送完成后等待接收客户端发回的文件,显示接收进度 5.关闭服务器 二.实现要点 先讲一下实现上述功能的几个关键点,明白的这几个要点,功能的大框架就搭好了,细节在下一节再讲 1.新建服务器类testServer,继承自QTcpServer 功能:用于接收客户端TCP请求,存储所有客户端…