首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > Apache >

基于Apache Mina兑现的TCP长连接和短连接实例

2012-06-30 
基于Apache Mina实现的TCP长连接和短连接实例2.2处理流程系统处理流程如下:1)???????启动服务端程序,监听8

基于Apache Mina实现的TCP长连接和短连接实例

2.2处理流程

系统处理流程如下:

1)???????启动服务端程序,监听8001和8002端口。

2)???????长连接客户端向服务端8002端口建立连接,服务端将连接对象保存到共享内存中。由于采用长连接方式,连接对象是唯一的。

3)???????短连接客户端向服务端8001端口建立连接。建立连接后创建一个连接对象。

4)???????短连接客户端连接成功后发送数据。服务端接收到数据后从共享内存中得到长连接方式的连接对象,使用此对象向长连接客户端发送数据。发送前将短连接对象设为长连接对象的属性值。

5)???????长连接客户端接收到数据后返回响应数据。服务端从长连接对象的属性中取得短连接对象,通过此对象将响应数据发送给短连接客户端。

6)???????短连接客户端收到响应数据后,关闭连接

3、服务端程序3.1长连接服务端

服务启动

public class连接.");

?????? Initialization init = Initialization.getInstance();

?????? HashMap<String, IoSession> clientMap =init.getClientMap();

?????? clientMap.put(clientIp, session);

??? }

?

??? @Override

???

?????? IoSession shortConnSession =(IoSession) session.getAttribute("shortConnSession");

?????? logger.info("ShortConnect Server Session ID ="+String.valueOf(shortConnSession.getId()));

?????? shortConnSession.write(expression);

??? }

?

??? @Override

???

?????? }

?????? connector.dispose();

?

??? }

}

消息处理

public class

?????? session.setAttribute("result", message.toString());

?????? session.close(true);

??? }

?

??? @Override

???

可否提供一个利用mina建立长连接的客户端的例子,以参考学习

热点排行