- 浏览: 281861 次
- 性别:
- 来自: 杭州
最新评论
-
niwowl:
可以!
gson使用在android使用例子 -
smallbee:
xin_jmail 写道首先感谢楼主的文章,让我知道了lock ...
java ReentrantLock Condition调试记录 -
xin_jmail:
首先感谢楼主的文章,让我知道了lock.newConditio ...
java ReentrantLock Condition调试记录 -
smallbee:
brad2309 写道lz 你的两个messageReceiv ...
基于Apache Mina实现的TCP长连接和短连接实例 -
brad2309:
lz 你的两个messageReceived方法是不是错乱了
基于Apache Mina实现的TCP长连接和短连接实例
文章列表
socket超时概念(转)
- 博客分类:
- socket
本文摘自:http://www.cnblogs.com/highriver/archive/2012/01/16/2324035.html
Socket.connect连接超时有二种情况:
1.由于网络的问题,TCP/IP三次握手时间>timeout的设置时间。这在国外访问weibo时,并且网络环境极差的情况下有可能发生。解决的办法:调大socket.connect方法中的timeout参数值,比如50s,linux默认最高是70s,如果超过70s没有意义,linux会采用70s.但是当调大之后,发现不到10s就报timeout exception。通过国外的机器pin ...
CshBBrain解析(待续)
- 博客分类:
- nio CshBBrain
创建MasterServer,监听端口,创建一个主线程,只负责接受客户端连接请求,当收到请求之后,由ReadWriteMonitor线程处理之后的read、write操作。主线程的选择器与ReadWriteMonitor不是同一个,否则会导致线程安全问题。其中使用了很多java.util.concurrent包下的类,比如AtomicInteger AtomicBoolean LinkedBlockingQueue ConcurrentLinkedQueue等等
待续
nio编程过程中会出现:
Exception in thread "main" java.io.IOException: 远程主机强迫关闭了一个现有的连接。
at sun.nio.ch.SocketDispatcher.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:25)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:233)
at sun.nio.ch.IOUtil.read(IOUt ...
java nio过程
- 博客分类:
- core java
1、服务端:ServerSocketChannel进行监听,注册SelectionKey.OP_ACCEPT事件,服务器阻塞在selector.select()方法中,等待客户端连接。2、客户端:SocketChannel创建连接,调用socketChannel.connect(SERVER_ADDRESS)连接服务器(此时服务器之前阻塞在selector.select()往下走,进入selectionKey.isAcceptable()逻辑,通过ServerSocketChannel的accept方法获得客户端SocketChannel,SocketChannel注册 SelectionKey ...
socket 客户端连接池实现
- 博客分类:
- core java
本文参考:http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece76310508a24420597634b86914323c3933fcf331d5c017be3b925251204d3c561640ab24859e1fa3c77341420c0c18ed714c9fecf6879877f67344f9141639244fe921163d620e14d99db0e96cce742e3b9a1d6c85523dd23016df1809c5b7003bb6ce76740f4d6ef5f635e07bb9d2715fe4e0123&p=8b2a9f1f ...
mongodb java使用
- 博客分类:
- DataBase
java 操作mongodb 类
package com.te.center;
import java.net.UnknownHostException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import com.google.gson.Gson;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb ...
mybatis代码生成limit分页修复
- 博客分类:
- JDBC
有一个哥们用mybatis自动代码加了mysql 的 limit属性,但是我发现生成的代码查询功能失效了,后来加了sql日志才发现少了一段代码,附件已经修复。
具体是ExampleGenerator 这个类
XML格式如下:
<?xml version="1.0" encoding="GBK"?>
<elXmlIniPlus>
<Section SectionName="DCQRYITFA">
<elXmlProperty>
<Attribute key="PRJCOD" value="NJ012001" ></Attribute>
<Attribute key="BNKTYP&quo ...
DM5 java 例子
- 博客分类:
- core java
package com.cmb.fbcbcserver;
import java.security.MessageDigest;
/**
* <p>
* Title:
* </p>
*
* <p>
* Description:
* </p>
*
* <p>
* Copyright: 融博技术有限公司 2012
* </p>
*
* @author 袁泉锋HO174959
* @version 1.0
* @date Aug 2, 2012
...
项目中有用到服务器推技术,也是由于环境因素,银行系统,行内机房无法向外部公网传输数据,只能外部进来获取。
采用Http短连接模拟长连接,后台线程等待不释放资源,直到有后台业务数据为止,期间发现客户端上来的连接只能2个,再建立会报错,还以为是Https造成的,后来看了某个文章,发现这玩意和标准有关系,当时还骂了底层开发人员,因为代码看不到,所以白被我骂了。哈哈
基本思路如下:
服务器端会阻塞请求直到有数据传递或超时才返回。
客户端 响应处理函数会在处理完服务器返回的信息后,再次发出请求,重新建立连接。
当客户端处理接收的数据、重新建立连接时,服务器端可能有新的数据到达;这些 ...
java注解使用例子
- 博客分类:
- core java
1、注解定义:
import java.lang.annotation.Documented;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import java.lang.annotation.ElementType;
import java.lang.annotation.RetentionPolicy;
/*
* 元注解@Target,@Ret ...
Bob,Alice和数字证书
网络安全中最知名的人物大概就是Bob和Alice了,因为很多安全原理阐述中都用这两个虚拟人物来进行实例说明。
我们来看看Bob是怎么从CA中心获得一个数字证书的:
1、Bob首先创建他自己的密钥对(key pair),包含公钥和私钥;
2、Bob通过网络把他的公钥送到CA中心,公钥中包含了Bob的个人鉴别信息(他的名字、地址、所用设备的序列号等等)。这些信息是证书所必需的;
3、这个证书申请在CA中心服务器上会一直处于等待(pending)状态,直到CA中心的某人开始处理Bob的请求;
4、在CA中心的某人鉴定并确认了Bob确实是那个提交公钥的人。为了确 ...
1、DSA公钥私钥生成类:
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import j ...
DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。
DES算法是这样工作的:如Mode为加密,则用Key 去把数据Data进行加密, 生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形式在公共通信网(如电 ...