网络编程:Java TCP客户端和服务器端交互案例

原创 一时失言乱红尘 2024-11-27 12:54 128阅读 0赞

在网络编程中,Java提供了一套完整的TCP(Transmission Control Protocol)通信机制。以下是Java TCP客户端和服务器端交互的一个简单案例:

客户端(Client.java)

  1. import java.io.*;
  2. import java.net.*;
  3. public class Client {
  4. public static void main(String[] args) {
  5. try {
  6. // 创建连接
  7. Socket socket = new Socket("localhost", 1234); // "localhost"是服务器的IP地址
  8. // 获取输出流
  9. PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
  10. // 发送请求消息
  11. out.println("Hello, Server!"); // "Hello, Server!"是客户端要发送的消息
  12. // 关闭输出流
  13. out.close();
  14. // 关闭连接
  15. socket.close();
  16. } catch (IOException e) {
  17. e.printStackTrace();
  18. System.out.println("Client: An error occurred while connecting.");
  19. }
  20. }
  21. }

服务器端(Server.java)

  1. import java.io.*;
  2. import java.net.*;
  3. public class Server {
  4. private static final int PORT = 1234;
  5. public static void main(String[] args) throws IOException {
  6. try (ServerSocket serverSocket = new ServerSocket(PORT)); {
  7. System.out.println("Server: Listening on port " + PORT);
  8. // 等待客户端连接
  9. Socket clientSocket = serverSocket.accept();
  10. System.out.println("Server: Accepted connection from " + clientSocket.getRemoteSocketAddress()));
  11. // 创建输出流,用于发送响应消息
  12. BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()))); // "InputStreamReader"是为了处理原始字节流
  13. // 读取客户端发送的消息,并发送响应消息
  14. String message = "";
  15. while ((message = in.readLine()) != null && !message.isEmpty()) {
  16. System.out.println("Server: Received message: " + message);
  17. // 发送响应消息,可以是任何你想回复的内容
  18. out.println("Server: Sent response message: " + "Hello, Client! Your message: " + message);
  19. }
  20. // 关闭输入流和输出流
  21. in.close();
  22. out.close();
  23. // 关闭客户端连接
  24. clientSocket.close();
  25. }
  26. }
  27. }

这个案例中,客户端通过Client.java发送一条消息给服务器端。服务器端通过Server.java监听客户端的连接,处理客户端的消息,并返回响应。最后关闭所有连接。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,128人围观)

还没有评论,来说两句吧...

相关阅读