网络编程:Java TCP客户端和服务器端交互案例
在网络编程中,Java提供了一套完整的TCP(Transmission Control Protocol)通信机制。以下是Java TCP客户端和服务器端交互的一个简单案例:
客户端(Client.java)
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
// 创建连接
Socket socket = new Socket("localhost", 1234); // "localhost"是服务器的IP地址
// 获取输出流
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
// 发送请求消息
out.println("Hello, Server!"); // "Hello, Server!"是客户端要发送的消息
// 关闭输出流
out.close();
// 关闭连接
socket.close();
} catch (IOException e) {
e.printStackTrace();
System.out.println("Client: An error occurred while connecting.");
}
}
}
服务器端(Server.java)
import java.io.*;
import java.net.*;
public class Server {
private static final int PORT = 1234;
public static void main(String[] args) throws IOException {
try (ServerSocket serverSocket = new ServerSocket(PORT)); {
System.out.println("Server: Listening on port " + PORT);
// 等待客户端连接
Socket clientSocket = serverSocket.accept();
System.out.println("Server: Accepted connection from " + clientSocket.getRemoteSocketAddress()));
// 创建输出流,用于发送响应消息
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()))); // "InputStreamReader"是为了处理原始字节流
// 读取客户端发送的消息,并发送响应消息
String message = "";
while ((message = in.readLine()) != null && !message.isEmpty()) {
System.out.println("Server: Received message: " + message);
// 发送响应消息,可以是任何你想回复的内容
out.println("Server: Sent response message: " + "Hello, Client! Your message: " + message);
}
// 关闭输入流和输出流
in.close();
out.close();
// 关闭客户端连接
clientSocket.close();
}
}
}
这个案例中,客户端通过Client.java
发送一条消息给服务器端。服务器端通过Server.java
监听客户端的连接,处理客户端的消息,并返回响应。最后关闭所有连接。
还没有评论,来说两句吧...