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

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) {
        //业务处理代码
    }

}

 

posted @ 2016-01-18 17:00  dyuxuan  阅读(1884)  评论(0)    收藏  举报