一、说明
java 中的网络编程是指使用 Java 编写网络应用程序,包括客户端和服务器端。其中,Socket 编程是 Java 网络编程中最基本的部分之一,它提供了一种可靠的、基于 TCP 或 UDP 协议的网络通信方式。
在 Java 中,可以使用 java.net 包中的 Socket 类和 ServerSocket 类进行 Socket 编程。其中,Socket 类表示客户端套接字,用于与服务器建立连接和进行通信;ServerSocket 类表示服务器套接字,用于监听客户端连接请求并创建 Socket 对象。
二、示例
服务器代码
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务器已启动,等待客户端连接...");
Socket socket = serverSocket.accept();
System.out.println("客户端已连接:" + socket.getInetAddress());
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String message = reader.readLine();
System.out.println("客户端发送的消息为:" + message);
reader.close();
socket.close();
serverSocket.close();
}
}
客户端代码
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 8888);
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
writer.write("Hello, server!");
writer.flush();
writer.close();
socket.close();
}
}
三、说明
服务器端先创建一个 ServerSocket 对象并监听指定端口(这里是 8888),然后等待客户端连接。客户端创建一个 Socket 对象并连接到服务器的 IP 地址和端口号。客户端向服务器发送一条消息,服务器接收到消息后将其打印出来。最后,关闭相关的流和套接字。
四、备注
在实际应用中,Socket 编程涉及到的内容还有很多,比如多线程处理、数据传输格式、网络安全等