当前位置: 首页 > news >正文

海口模板建站平台网络推广需要什么

海口模板建站平台,网络推广需要什么,ppt汇精美ppt模板免费下载网站,大学生创新创业大赛报名入口用mina框架传输对象,对于开发者来说,直接传输对象,而不用自己编写相应的报文转换代码,将大大节省 开发时间。 即使用对象编码解码器 使用ObjectSerializationCodecFactory 服务端 MinaServer.java代码如下 package com.bypay.mina…

用mina框架传输对象,对于开发者来说,直接传输对象,而不用自己编写相应的报文转换代码,将大大节省

开发时间。

即使用对象编码解码器

使用ObjectSerializationCodecFactory

服务端

MinaServer.java代码如下

package com.bypay.mina.server;import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.Executors;
import org.apache.mina.core.service.IoAcceptor;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
import org.apache.mina.filter.executor.ExecutorFilter;
import org.apache.mina.filter.logging.LoggingFilter;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;import com.bypay.mina.server.handle.ObjectHandler;public class MinaServer {private IoAcceptor acceptor ;public MinaServer() {acceptor = new NioSocketAcceptor();//设置日志过滤器acceptor.getFilterChain().addLast("logger", new LoggingFilter());acceptor.getFilterChain().addLast("threadPool",new ExecutorFilter(Executors.newCachedThreadPool()));//设置读缓冲acceptor.getSessionConfig().setReadBufferSize(2048*2048);//设置心跳频率acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE, 30);//设置Handleracceptor.setHandler(new ObjectHandler());try {Set<SocketAddress> addresses = new HashSet<SocketAddress>();//此处的host地址需注意,需要填写主机对外的ip地址或域名,不可用localhostaddresses.add(new InetSocketAddress("localhost", 18886));acceptor.bind(addresses);} catch (IOException ioe) {ioe.printStackTrace();}System.out.println("--------------------------------------------------");System.out.println("Server Started");System.out.println("--------------------------------------------------");}public static void main(String[] args) {MinaServer server = new MinaServer();}
}

ObjectHandler.java

package com.bypay.mina.server.handle;import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.session.IoSession;
import com.bypay.mina.bean.TransInfo;public class ObjectHandler extends IoHandlerAdapter {@Overridepublic void sessionCreated(IoSession session) {//session创建时回调System.out.println("Session Created!");}@Overridepublic void sessionClosed(IoSession session) throws Exception {    //session关闭时回调System.out.println("Session Closed!");}@Overridepublic void sessionOpened(IoSession session) throws Exception {//session打开时回调System.out.println("Session Opened!");}@Overridepublic void sessionIdle(IoSession session, IdleStatus status) {//心跳System.out.println("sessionIdle");}@Overridepublic void exceptionCaught(IoSession session, Throwable cause) {//异常时回调
        cause.printStackTrace();//关闭sessionsession.close(true);}@Overridepublic void messageReceived(IoSession session, Object message)throws Exception {//接收消息
       //TransInfo为自定义对象TransInfo info = (TransInfo) message;        //System.out.println("接收返回消息成功");        //System.out.println("id:"+info.getId());    //System.out.println("msg:"+info.getMsg());//Thread.sleep(100);
        session.write(info);//session.close(true);
    }
}

TransInfo.java

传输的自定义对象必须实现Serializable接口,且客户端和服务端的包名+类名必须要保持一致

package com.bypay.mina.bean;public class TransInfo implements java.io.Serializable{/*** */private static final long serialVersionUID = 1L;private long id;private String msg;public long getId() {return id;}public void setId(long id) {this.id = id;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}}

 

客户端

客户端必须也要设置同样的编码和解码工厂ObjectSerializationCodecFactory

如MinaClient.java

package com.bypay.mina.client;import java.net.InetSocketAddress;
import org.apache.mina.core.future.ConnectFuture;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
import org.apache.mina.filter.logging.LoggingFilter;
import org.apache.mina.transport.socket.nio.NioSocketConnector;
import com.bypay.mina.handler.MyClientHandler;/*** Mina客户端* @author 唐延波* @date 2015-1-20**/
public class MinaClient {private static int CONNECT_TIMEOUT = 1000;private static String HOSTNAME = "localhost";private static int PORT = 18886;/*** @author 唐延波* @throws InterruptedException* @date 2014-11-4*/public static void main(String[] args) throws InterruptedException {NioSocketConnector connector = new NioSocketConnector();connector.setConnectTimeoutMillis(CONNECT_TIMEOUT);//设置读缓冲,传输的内容必须小于此缓冲connector.getSessionConfig().setReadBufferSize(2048*2048);//设置编码解码器//设置日志过滤器connector.getFilterChain().addLast("logger", new LoggingFilter());//设置Handlerconnector.setHandler(new MyClientHandler());//获取连接,该方法为异步执行ConnectFuture future = connector.connect(new InetSocketAddress(HOSTNAME, PORT));//等待连接建立
        future.awaitUninterruptibly();//获取sessionIoSession session = future.getSession();//等待session关闭
        session.getCloseFuture().awaitUninterruptibly();//释放connector
        connector.dispose();}
}

MyClientHandler.java

package com.bypay.mina.handler;import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.session.IoSession;import com.bypay.mina.bean.TransInfo;/*** ClientHandler* @author 唐延波* @date 2015-1-20**/
public class MyClientHandler extends IoHandlerAdapter {@Overridepublic void sessionCreated(IoSession session) throws Exception {//session 创建时调用TransInfo info = new TransInfo();session.write(info);}@Overridepublic void messageReceived(IoSession session, Object message)throws Exception {//异步接收消息TransInfo info = (TransInfo) message;session.close(true);}@Overridepublic void exceptionCaught(IoSession session, Throwable cause)throws Exception {//出现异常
        cause.printStackTrace();session.close(true);}@Overridepublic void sessionIdle(IoSession session, IdleStatus status)throws Exception {//心跳System.out.println("客户端ide:");}
}

转载于:https://www.cnblogs.com/tangyanbo/p/4297553.html

http://www.lbrq.cn/news/2359207.html

相关文章:

  • 佛山用户网站建设百度入口网页版
  • 下载类网站做多久才有流量百度成都总部
  • 天津西青区地图山东seo推广公司
  • 做网站服务商百度在线识图查图片
  • 专做海外代购的网站铜陵seo
  • 男生做网站运营的前景百度24小时客服电话136
  • 网站建设新闻推广app有哪些
  • 北京市规划和建设委员会网站培训机构专业
  • asp.net 4.0网站开发与项目实战google 官网入口
  • 自己做的网站百度收索不到网站联盟
  • 做食品行业网站手机营销软件
  • 信阳网站开发建设公司黑帽seo优化推广
  • 网站建设公司哈seo综合查询中的具体内容有哪些
  • 企业网站建设 安全厦门做网站公司有哪些
  • 搜狐快站做的手机网站人力资源培训
  • 宝山做网站网络推广优化是干啥的
  • 网站用视频做背景音乐全网营销代运营
  • 网站前端建设报价单如何提高网站在百度的排名
  • 没有基础学做网站seo技巧是什么
  • 网站服务器使用ebay欧洲站网址
  • 新app推广去哪里找东莞网站seo推广
  • wordpress 微信连接seosem是指什么意思
  • 昭通网站seo优化啥都能看的浏览器
  • 安微建设厅网站免费入驻的卖货平台
  • 阿里巴巴国际站入驻通州区网站快速排名方案
  • 做网站的dreamweaver优化疫情防控措施
  • 网站没备案如何做淘宝客企业seo关键字优化
  • 企业网站用什么做爱站网关键词密度
  • 泉州市建设网站百度一下你就知道首页
  • 把网站传到服务器上怎么做手机app软件开发
  • 技术分享:如何用规则定义生成自定义文件时间戳
  • 【MAC】nacos 2.5.1容器docker安装
  • Python中的列表list、元组(笔记)
  • FCN语义分割笔记(1)
  • AWS ML Specialist 考试备考指南
  • 【27】MFC入门到精通——MFC 修改用户界面登录IP IP Address Control