- 浏览: 30082 次
- 性别:
- 来自: 北京
最新评论
-
heng123:
netty等视频java.5d6b.com教程
通信框架netty5.0教程一:使用netty开发简单样例 -
vista_move:
多谢关注,过两天有时间再继续扩展一些心跳、tcp包问题
通信框架netty5.0教程一:使用netty开发简单样例 -
zuo_qin_bo:
期待后续佳作,持续关注
通信框架netty5.0教程一:使用netty开发简单样例 -
vista_move:
不好意思到现在才回复你,好久没登陆了。下面回答你的疑问,因为在 ...
DWR后台推送技术 -
jzzwy:
不错的文章 , 虽然最后你用form 和Iframe 和后台发 ...
DWR后台推送技术
文章列表
java web开发当中常用到定时任务,说到定时任务相信你一定或多或少了解quartz。在单台应用服务器上配置spring + quartz没有什么问题,这样的文章网络上应该也有很多,但是当你把应用放到集群环境中则会出问题,每台服务器上的定时任务并不知道其他服务器上的定时 任务的存在,各自执行产生资源竞争,可能就会导致出现脏数据。
本篇文章讲解了如何在集群环境中配置定时任务,用到的是spring4 + quartz2.2.1,下面请跟我一步一步进行配置。
如果你使用maven,添加引入;否则可以官网下载最新包。
<dependency>
...
最近工作需要写一个后台推送消息到浏览器提示用户操作的功能,在网上摸索了几天,有的是比较乱的,会造成一些误导,现在把自己应用笔记写下来跟大家分享。
第一步:下载dwr.jar、commons-logging.jar(我这里用的是dwr3.0)导入到自己的工程里。
第二步:修改web.xml,加入以下code
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>
org.directwebremoting.servlet ...
熟悉TCP编程的读者可能都知道,无论是服务端还是客户端,当我们读取或者发送消息的时候,都需要考虑TCP底层的粘包/拆包机制。如果不考虑TCP粘包的问题,就可能导致读取数据的错误。本文将讲解如何使用Netty5.0解决TCP粘包/ ...
为了保证信息传输的安全性,需要对重要数据进行加密传输,本文提供了java的rsa加密方法供参考。
package test.rsa;
import java.io.ByteArrayOutputStream;
import java.security.Key;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.Pub ...
上一章已经讲了如何搭建一个简单的netty server,这一章讲一下netty超时心跳机制。
一般应用场景是client在一定时间未收到server端数据时给server端发送心跳请求,server收到心跳请求后发送一个心跳包给client端,以此维持通信。
发送心跳由client执行,server端反馈心跳就可以了,好了不多说了,上代码:
netty server代码:
import java.util.concurrent.TimeUnit;
import org.apache.log4j.Logger;
import io.netty.bootstrap.Serv ...
Netty是什么?
本质:JBoss做的一个Jar包
目的:快速开发高性能、高可靠性的网络服务器和客户端程序
优点:提供异步的、事件驱动的网络应用程序框架和工具
通俗的说:一个好使的处理Socket的东东
Netty的特性
设计
统一的API,适用于不同的协议(阻塞和非阻塞)
基于灵活、可扩展的事件驱动模型
高度可定制的线程模型
可靠的无连接数据Socket支持(UDP)
性能
更好的吞吐量,低延迟
更省资源
尽量减少不必要的内存拷贝
安全
完整的SSL/TLS和STARTTLS的支持
能在Applet与Android的限制环境运行良好
健壮性
不再因过快、过慢 ...
原文地址:http://www.cnblogs.com/vamei/archive/2012/09/13/2682778.html#!comments
本文主要解决在 ie6 下,jquery 无法设置 select 选中的问题。
$(function(){
$('#id').html("<option value='1'>1</option><option value='2'>2</option>");
$('#id').find("option").each(function() {
if($(this).val() == '2'){
$(this).attr('selected',' ...
bool flag = false;
LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode == HC_ACTION)
{
KBDLLHOOKSTRUCT* pStruct = (KBDLLHOOKSTRUCT*)lParam;
//只允许输入数字、字母、shift、backspace,其他字符都过滤
if (!(pStruct->vkCode >= 48 && pStruct->vkCode &l ...
<EMBED id="playMusic" src="Windows Notify.wav" align="center" border="0" width="1" height="1" loop="false"/>
需要播放声音的地方调用
document.getElementByIdx_x("playMusic").play();
<html>
<head>
<title>导入观众数据</title>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<script language="Javascript">
function importDate() {
var filename = $("#attachfile").val();
if(!(fi ...
function addBookmark(title,url){
if(window.sidebar){
window.sidebar.addPanel(title,url,"");
}else if(document.all){
window.external.AddFavorite(url,title);
}else if(window.opera && window.print){
return true;
}else if(window.external && window.external.max ...
所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去
[color=orange]在两个或多个任务中,如果每个任务锁定了其他任务试图锁定的资源,此时会造成这些任务永久阻塞,从而出现死锁。例如:事务A 获取了行 1 的共享锁。事务 B 获取了行 2 的共享锁。
现在,事务 A 请求行 2 的排他锁,但在事务 B 完成并释放其对行 2 持有的共享锁之前被阻塞。
现在,事务 B 请求行 1 的排他锁,但在事务 A 完成并释放其对行 1 持有的共享锁之前被阻塞。
事务 B 完成之后事务 A 才能完成,但是事务 B 由事务 A 阻塞。该 ...
js中生成指定长度的字符串方法
function randomChar(l){
var x="0123456789qwertyuioplkjhgfdsazxcvbnmABCDEFGHIJKLMNOPQRSTUVWXYZ";
var tmp="";
for(var i=0;i< l;i++) {
tmp += x.charAt(Math.ceil(Math.random()*100000000)%x.length);
}
return tmp;
}
l:生成随机字符串的长度
页面:
<table id="exhibitsTr" border="0" cellspacing="0" cellpadding="0" class="edit-table">
<tr>
<td align="center" width='30%'>展品名称</td>
<td align=&q ...