Chương trình sau thực hiện công việc gì?
for (int i = 0; i < args.length; i++) {
try {
Socket socket = new Socket(args[i], 80);
System.out.print("Connected to " + socket.getInetAddress());
System.out.print(" on port " + socket.getPort());
System.out.print(" from port " + socket.getLocalPort());
System.out.println(" of " + socket.getLocalAddress());
} catch(UnknownHostException e) {
e.printStackTrace();
} catch(SocketException e) {
e.printStackTrace();
} catch(IOException e) {
e.printStackTrace();
}
for (int i = 0; i < args.length; i++) {
try {
Socket socket = new Socket(args[i], 80);
System.out.print("Connected to " + socket.getInetAddress());
System.out.print(" on port " + socket.getPort());
System.out.print(" from port " + socket.getLocalPort());
System.out.println(" of " + socket.getLocalAddress());
} catch(UnknownHostException e) {
e.printStackTrace();
} catch(SocketException e) {
e.printStackTrace();
} catch(IOException e) {
e.printStackTrace();
}
try {
Socket socket = new Socket(args[i], 80);
System.out.print("Connected to " + socket.getInetAddress());
System.out.print(" on port " + socket.getPort());
System.out.print(" from port " + socket.getLocalPort());
System.out.println(" of " + socket.getLocalAddress());
} catch(UnknownHostException e) {
e.printStackTrace();
} catch(SocketException e) {
e.printStackTrace();
} catch(IOException e) {
e.printStackTrace();
}
Trả lời:
Đáp án đúng: D
Chương trình duyệt qua một mảng các chuỗi `args`. Trong mỗi vòng lặp, nó cố gắng tạo một socket kết nối đến địa chỉ được cung cấp bởi `args[i]` trên cổng 80. Nếu kết nối thành công, nó in ra thông tin về kết nối (địa chỉ IP, cổng cục bộ và cổng từ xa). Nếu có bất kỳ ngoại lệ nào xảy ra (ví dụ: không tìm thấy host, lỗi socket, lỗi I/O), nó sẽ in stack trace của ngoại lệ. Vì vậy, chương trình này thực hiện việc kết nối đến một webserver (hoặc bất kỳ server nào) trên cổng 80 sử dụng địa chỉ được cung cấp qua tham số dòng lệnh.





