Java Socket 网络编程入门:简单服务器和客户端示例
以下是一个简单的基于 Socket 的网络程序设计示例,展示了如何使用 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('客户端已连接');
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true);
String message;
while ((message = reader.readLine()) != null) {
System.out.println('客户端发来消息:' + message);
writer.println('服务器已收到消息:' + message);
}
reader.close();
writer.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);
System.out.println('已连接到服务器');
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true);
BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
String message;
while ((message = console.readLine()) != null) {
writer.println(message);
System.out.println(reader.readLine());
}
console.close();
reader.close();
writer.close();
socket.close();
}
}
在运行时,先运行 Server 类,再运行 Client 类,即可实现客户端和服务器端的简单通信。
注意:
- 服务器端代码使用
ServerSocket类创建监听端口,并使用accept()方法等待客户端连接。 - 客户端代码使用
Socket类连接到服务器,并使用getInputStream()和getOutputStream()方法获取输入输出流进行数据传输。 - 代码中使用了
BufferedReader和PrintWriter类方便地进行文本数据的读写操作。 - 为了确保程序正常关闭,代码中在最后关闭了所有资源,包括
Socket、ServerSocket、BufferedReader和PrintWriter等。
通过这个示例,您可以学习到使用 Java Socket 进行简单的网络编程,为进一步开发更复杂的网络应用程序打下基础。
原文地址: https://www.cveoy.top/t/topic/oX8i 著作权归作者所有。请勿转载和采集!