Java中的网络编程是指通过Java语言实现网络通信的过程。Java提供了丰富的网络编程API,包括Socket、ServerSocket、DatagramSocket等类,可以实现客户端和服务器之间的通信。
下面是一个简单的示例代码,展示了如何使用Java Socket实现客户端和服务器之间的通信。
客户端代码:
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
// 创建Socket对象
Socket socket = new Socket("localhost", 8888);
// 获取输出流,向服务器发送数据
OutputStream outputStream = socket.getOutputStream();
PrintWriter printWriter = new PrintWriter(outputStream);
printWriter.write("Hello, server!");
printWriter.flush();
// 获取输入流,读取服务器端的响应
InputStream inputStream = socket.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String response = bufferedReader.readLine();
System.out.println("Response from server: " + response);
// 关闭资源
printWriter.close();
outputStream.close();
bufferedReader.close();
inputStream.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
服务器端代码:
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
try {
// 创建ServerSocket对象,绑定端口号
ServerSocket serverSocket = new ServerSocket(8888);
// 监听客户端的连接请求
Socket socket = serverSocket.accept();
// 获取输入流,读取客户端发送的数据
InputStream inputStream = socket.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String request = bufferedReader.readLine();
System.out.println("Request from client: " + request);
// 获取输出流,向客户端发送响应
OutputStream outputStream = socket.getOutputStream();
PrintWriter printWriter = new PrintWriter(outputStream);
printWriter.write("Hello, client!");
printWriter.flush();
// 关闭资源
printWriter.close();
outputStream.close();
bufferedReader.close();
inputStream.close();
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上代码展示了一个简单的客户端和服务器之间的通信过程,客户端向服务器发送一条消息,服务器返回一条响应消息。