Java网络编程中socket连接断开问题案例

原创 末蓝、 2024-12-11 11:33 121阅读 0赞

在Java网络编程中,socket连接断开是一个常见的问题。以下是一个简单的案例:

案例:TCP客户端与服务器的通信

  1. 客户端代码(Client.java):
  1. import java.io.*;
  2. import java.net.*;
  3. public class Client {
  4. public static void main(String[] args) {
  5. try (Socket socket = new Socket("localhost", 1234);
  6. BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())))) {
  7. System.out.println("Connected to server...");
  8. // 发送消息
  9. String message = "Hello, Server!";
  10. in.write(message.getBytes());
  11. // 接收并打印服务器响应
  12. String response = in.readLine();
  13. System.out.println("Server Response: " + response);
  14. } catch (IOException e) {
  15. e.printStackTrace();
  16. System.out.println("Connection failed.");
  17. }
  18. }
  19. }
  1. 服务器代码(Server.java):
  1. import java.io.*;
  2. import java.net.*;
  3. public class Server {
  4. public static void main(String[] args) throws IOException {
  5. ServerSocket serverSocket = new ServerSocket(1234);
  6. System.out.println("Server started listening on port 1234...");
  7. while (true) {
  8. Socket socket = serverSocket.accept();
  9. Thread thread = new Thread(() -> handleClient(socket)));
  10. thread.start();
  11. }
  12. }
  13. private static void handleClient(Socket socket) throws IOException {
  14. BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())));
  15. System.out.println("New client connected...");
  16. // 接收客户端发送的消息
  17. String message = in.readLine();
  18. System.out.println("Received message from client: " + message);
  19. // 发送服务器响应
  20. String response = "Server received your message. Thanks!";
  21. in.write(response.getBytes());
  22. in.close();
  23. socket.close();
  24. }
  25. }

在这个案例中,客户端尝试连接到服务器的端口1234。如果连接成功,他们会发送消息给服务器,并接收服务器的响应。

如果在执行过程中遇到断开的情况,可能的原因包括:网络中断、服务器未开启监听或者客户端代码中的错误。

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

发表评论

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

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

相关阅读