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