面试问题总结

1. 两个软件如何发送消息的?

 底层就是通过socket实现的

基于socket实现客户端向服务器:

Socket scoket  = new Socket(目标IP或域名,目标端口);//创建连接,如果域名解析不了会抛UnknownHostException的异常

//读取从服务器返回的信息(流)

BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

//向服务器写入数据

PrintWriter out  = new PrintWriter(socket.getOutputStream(),true);

Scanner scan = new  Scanner(System.in);

String word ;

while(scan.hasNext()){

  words = scan.nextLine();

  output.println(words);

  System.out.println(words);

}

  in.readLine();

  scan.close(); 

实现服务器向客户端的:

ServerSocket ss = new ServerSocket(端口号);

           Socket socket = ss.accept();

上述只能实现消息一条一条发送,但是实际情况中经常是多条消息,通常采用连接池的方法维护socket

JMS消息传送机制

用于在两个应用程序之间,或者分布式系统中发送消息消费消息,进行异步通信,数据交互。JMS 使您能够通过消息收发服务(有时称为消息中介程序或路由器)从一个 JMS 客户机向另一个 JMS客户机发送消息,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发。

消息是一种类型的对象,由两部分组成:报文头和消息主体。报头由路由信息以及有关该消息的元数据组成。消息主体则携带着应用程序的数据

原文地址:https://www.cnblogs.com/yfafa/p/8530395.html