Java网络编程:Socket通信错误处理案例

原创 秒速五厘米 2024-09-26 16:24 219阅读 0赞

在Java的网络编程中,Socket通信可能会出现各种错误。以下是一个简单的案例,包括错误处理和重试逻辑。

  1. import java.io.*;
  2. import java.net.ServerSocket;
  3. import java.net.Socket;
  4. public class SocketServerWithErrorHandling {
  5. private static final int SERVER_PORT = 1234;
  6. public static void main(String[] args) throws IOException {
  7. // 创建服务器Socket
  8. ServerSocket serverSocket = new ServerSocket(SERVER_PORT);
  9. System.out.println("Server is listening on port " + SERVER_PORT);
  10. while (true) {
  11. // 等待客户端连接
  12. Socket clientSocket = serverSocket.accept();
  13. try {
  14. handleClientConnection(clientSocket);
  15. } catch (IOException e) {
  16. System.err.println("Error handling client connection: " + e.getMessage());
  17. closeSocket(clientSocket);
  18. }
  19. }
  20. }
  21. private static void handleClientConnection(Socket clientSocket) throws IOException {
  22. BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())));
  23. // 获取客户端发送的消息
  24. String requestMessage = in.readLine();
  25. // 处理请求消息(这里假设一个简单的Echo服务)
  26. String echoResponse = processRequest(requestMessage));
  27. // 向客户端发送响应
  28. BufferedWriter out = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()))));
  29. out.write(echoResponse);
  30. out.flush();
  31. }
  32. private static String processRequest(String requestMessage) {
  33. // 假设一个简单的Echo服务,这里只是处理请求
  34. if (requestMessage.contains("echo")) {
  35. return "Echo: " + requestMessage;
  36. } else {
  37. return "Invalid Request";
  38. }
  39. }
  40. private static void closeSocket(Socket clientSocket) throws IOException {
  41. clientSocket.close();
  42. }
  43. }

在这个案例中,我们创建了一个服务器端Socket来监听客户端连接。当有客户端连接时,我们尝试处理客户端发送的消息,并可能需要重试。

如果在处理过程中出现错误(如IO异常),我们将捕获并打印错误信息,然后关闭客户端Socket以释放资源。

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

发表评论

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

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

相关阅读