java网络编程【2】 基于Socket的java网络编程(含实例)
时间: 2024-02-26 16:58:08 浏览: 19
Java中的网络编程主要依靠Socket类来实现,Socket类是Java中最基本的网络通信类,它提供了客户端和服务器端之间的通信机制。
下面是一个基于Socket类的简单的Java网络编程实例,其中包括一个客户端和一个服务器端:
服务器端代码:
```java
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
ServerSocket serverSocket = null;
Socket socket = null;
BufferedReader reader = null;
PrintWriter writer = null;
try {
// 创建ServerSocket对象,监听端口号为8888
serverSocket = new ServerSocket(8888);
System.out.println("服务器已启动,等待客户端连接...");
// 等待客户端连接
socket = serverSocket.accept();
System.out.println("客户端已连接...");
// 获取输入流和输出流
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
writer = new PrintWriter(socket.getOutputStream(), true);
// 读取客户端发送的数据并回复
String message = null;
while ((message = reader.readLine()) != null) {
System.out.println("客户端:" + message);
writer.println("服务端已接收到消息:" + message);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
// 关闭资源
if (reader != null) reader.close();
if (writer != null) writer.close();
if (socket != null) socket.close();
if (serverSocket != null) serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
客户端代码:
```java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
Socket socket = null;
BufferedReader reader = null;
PrintWriter writer = null;
try {
// 创建Socket对象,指定服务器地址和端口号
socket = new Socket("127.0.0.1", 8888);
// 获取输入流和输出流
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
writer = new PrintWriter(socket.getOutputStream(), true);
// 发送消息给服务器
writer.println("Hello, Server!");
// 接收服务器回复的消息
String message = reader.readLine();
System.out.println("服务器:" + message);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
// 关闭资源
if (reader != null) reader.close();
if (writer != null) writer.close();
if (socket != null) socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
以上代码演示了基于Socket类的Java网络编程实现,服务器端监听端口号为8888,客户端连接服务器后发送一条消息,服务器接收到消息后回复一条消息。