首页 > 系统服务 > 详细

不同主机的进程之间的通信-socket及IoHandlerAdapter框架

时间:2016-01-18 17:32:27      阅读:585      评论:0      收藏:0      [点我收藏+]

socket:

import java.net.Socket;
import java.io.IOException;

import ca.uhn.hl7v2.llp.LLPException;
import ca.uhn.hl7v2.llp.MinLLPReader;
import ca.uhn.hl7v2.llp.MinLLPWriter;
public static String sendHL7Msg(String msg){
    Socket socket=null;
    String receiveMsg=null;
    try {
        //ConfUtil.getSocketIp()->127.0.0.1 ConfUtil.getSocketPort()->1235
        socket = new Socket(ConfUtil.getSocketIp(), Integer.valueOf(ConfUtil.getSocketPort()));
        MinLLPReader reader=new MinLLPReader(socket.getInputStream());
        MinLLPWriter writer=new MinLLPWriter(socket.getOutputStream());
        log.info("sending message:\n"+msg);
        writer.writeMessage(msg,"utf-8");
        receiveMsg=reader.getMessage();
        log.info("receiving message:\n" + receiveMsg);
    } catch (IOException e) {
        e.printStackTrace();
    } catch (LLPException e) {
        e.printStackTrace();
    } finally {
        try {
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return receiveMsg;
}

IoHandlerAdapter框架:

import java.net.InetSocketAddress;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IoSession;
public class MessageHandler extends IoHandlerAdapter {
    Log log = LogFactory.getLog(MessageHandler.class);
    
    @Override
    public void exceptionCaught(IoSession session, Throwable cause) {
        session.close(true);
        cause.printStackTrace();
    }
    
    @Override
    public void messageReceived(IoSession session, Object msg) throws Exception {
        String msgStr = (String) msg;
        InetSocketAddress ra = (InetSocketAddress) session.getRemoteAddress();
        log.info("收到客户端 IP:" + ra.getHostName() + " Port:" + ra.getPort()
                + "发送的字符串:" + msgStr);
        String writeMessage = handleMessage(msgStr);
        session.write(writeMessage);
    }
    
    private String handleMessage(String req) {
        //业务处理代码
    }

}

 

不同主机的进程之间的通信-socket及IoHandlerAdapter框架

原文:http://www.cnblogs.com/dyuxuan/p/5139816.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!