网络编程挑战:Java Socket、ServerSocket通信错误处理实例

原创 「爱情、让人受尽委屈。」 2024-11-01 15:57 96阅读 0赞

在Java中,使用SocketServerSocket进行网络编程时,错误处理是一个重要的部分。以下是一些常见的错误处理实例,可以帮助你更好地理解和处理网络通信中可能遇到的问题。

1.服务器端错误处理```javaimport java.io.*;

import java.net.*;

public class Server {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(1234);
System.out.println(“Server is running and waiting for client connection…”);

while (true) {
Socket socket = serverSocket.accept();
System.out.println(“Client connected.”);

try {
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);

String inputLine;
while ((inputLine = in.readLine()) != null) {
out.println(“Echo: “ + inputLine);
}
} catch (IOException e) {
System.out.println(“Error handling client: “ + e.getMessage());
} finally {
socket.close();
}
}
} catch (IOException e) {
System.out.println(“Server exception: “ + e.getMessage());
e.printStackTrace();
}
}
}
###2.客户端错误处理javaimport java.io.;
import java.net.
;

public class Client {
public static void main(String[] args) {
try {
Socket socket = new Socket(“localhost”,1234);
System.out.println(“Connected to server.”);

BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));

String userInput;
while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
System.out.println(“Server response: “ + in.readLine());
}
} catch (UnknownHostException e) {
System.out.println(“Server not found: “ + e.getMessage());
} catch (IOException e) {
System.out.println(“I/O error: “ + e.getMessage());
}
}
}
```###错误处理要点:

  1. 捕获异常:使用try-catch块来捕获可能发生的异常,如IOException
  2. 资源管理:使用try-with-resources或在finally块中关闭资源,如SocketInputStreamOutputStream
  3. 错误信息:打印错误信息,帮助调试和定位问题。
  4. 客户端异常处理:处理UnknownHostException(服务器不可达)和IOException(I/O错误)。

通过这些基本的错误处理策略,你可以构建更健壮的网络应用程序。记得在实际应用中根据具体需求调整和扩展错误处理逻辑。

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

发表评论

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

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

相关阅读