// Java 网络编程示例代码:简单的 TCP 服务器和客户端
// 服务器端代码
import java.io.*;
import java.net.*;
public class TCPServer {
public static void main(String[] args) {
try {
// 创建一个服务器套接字,监听端口 12345
ServerSocket serverSocket = new ServerSocket(12345);
System.out.println("服务器已启动,等待客户端连接...");
// 接受客户端连接
Socket clientSocket = serverSocket.accept();
System.out.println("客户端已连接");
// 获取输入输出流
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
// 读取客户端发送的消息
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println("收到客户端消息: " + inputLine);
// 向客户端发送响应
out.println("服务器已收到你的消息: " + inputLine);
}
// 关闭资源
in.close();
out.close();
clientSocket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 客户端代码
import java.io.*;
import java.net.*;
public class TCPClient {
public static void main(String[] args) {
try {
// 连接到服务器(假设服务器在同一台机器上)
Socket socket = new Socket("localhost", 12345);
// 获取输入输出流
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// 发送消息给服务器并接收响应
String userInput;
while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
System.out.println("服务器响应: " + in.readLine());
}
// 关闭资源
in.close();
out.close();
socket.close();
} catch (UnknownHostException e) {
System.err.println("未知主机");
} catch (IOException e) {
System.err.println("I/O 错误");
}
}
}
TCPServer 类:
ServerSocket
用于创建服务器端套接字,监听指定端口(如 12345)。accept()
方法阻塞等待客户端连接。BufferedReader
和 PrintWriter
读取和发送数据。TCPClient 类:
Socket
用于创建客户端套接字,连接到服务器的 IP 地址和端口。BufferedReader
和 PrintWriter
与服务器进行通信。这个示例展示了如何使用 Java 进行基本的 TCP 网络编程。
上一篇:java爬取网页数据
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站