Java 网络编程:对象流与远程方法调用
在 Java 网络编程中,客户端与服务器之间的通信是一个重要的话题。本文将详细介绍两种常见的通信方式:对象流(Object Streams)和远程方法调用(Remote Method Invocation,RMI)。
1. 套接字和流的基础
在 Java 网络编程中,大多数程序使用套接字(Sockets)和 TCP 协议进行通信。TCP 是一种可靠的协议,它的主要目标是确保消息在传输过程中不被扭曲或遗漏。
1.1 TCP 协议
TCP 是一种底层协议,它通过提供消息结构的详细信息,确保消息的可靠传输。如果消息不符合预期结构,接收方可以请求重传部分或全部消息。许多高级协议,如 SMTP、HTTP 和 FTP,都使用 TCP 进行数据传输。
1.2 套接字和端口
TCP 使用套接字和端口这两个抽象概念。从 Java 代码的角度来看,套接字可以被视为一个对象,它知道如何使用 TCP 与另一台计算机交换数据。服务器通过端口号来管理提供的服务,客户端需要知道服务器的端口号以及主机名或 IP 地址才能使用服务。
2. Java 中的客户端套接字
java.net.Socket类用于创建客户端套接字,通过 TCP 与服务器进行可靠通信。以下是一个简单的示例代码,展示了如何创建套接字并进行数据的读写:
try { // 创建套接字 Socket sock = new Socket("mangfalo", 1234);