简介
套接字:对目的计算机上的目标进程所使用的一个特定端口的引用。可以用 (IP地址:端口号)表示 消息传递接口(Message Passing Interface, MPI)是一个标准,为一组具有同步和异步支持的消息传递操作提供API。
互联网协议的API
进程间通信的特征
同步和异步通信
- 同步通信中,send和receive操作都是阻塞的。
- 异步通信中,send 非阻塞,只要消息被复制到本地缓冲区,发送进程就可以去执行其他操作。receive有阻塞和非阻塞两种操作, 在不阻塞的情况下,receive在后台提供缓冲区,通过中断或轮询来接收缓冲区满的消息。
在支持多线程的环境中,阻塞型receive的缺点较少。非阻塞的receive需要额外的操作判断是否缓冲区满,较复杂。
套接字
进程间通信是在两个进程各自的一个套接字之间传送消息。
UDP数据报通信
UDP数据报故障模型:
- 遗漏故障,消息可能丢失
- 排序,消息未按发送顺序到达
UDP的使用,节省开销。
JAVA 中的API:
- DatagramSocket
- DatagramPacket
TCP通信
外部数据表示和编码
外部数据表示:表示结构和简单值的一致的标准。
存储在运行程序中的信息都表示成数据结构,在传输前需转换为字节序列。
三种外部数据表示和编码方法:CORBA公共数据表示、Java序列化、XML.
远程对象引用
与XML无关?
远程对象的标识符,作为远程方法调用的参数传递。
组播通信
单个消息从一个进程发送到一组进程的每个成员。