wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

LTM ( Pipe + Socket )

Total questions: 120

Worksheet time: 3600secs

Name
Class
Date
1.

Ống dẫn (Pipe) là một tiện ích được hỗ trợ trong hệ điều hành nào?

a)

Chỉ Windows

b)

Chỉ Linux

c)

Hầu hết các hệ điều hành đa nhiệm

d)

Chỉ MacOS

2.

Ống dẫn cho phép điều gì xảy ra giữa 2 quá trình?

a)

Trao đổi dữ liệu trên cùng 1 máy.

b)

Trao đổi dữ liệu trên các máy khác nhau.

c)

Chia sẻ bộ nhớ trực tiếp.

d)

Thực thi mã lệnh từ xa.

3.

Dữ liệu di chuyển trên ống dẫn theo hướng nào?

a)

Hai chiều đồng thời.

b)

Ngẫu nhiên.

c)

Một chiều nhất định.

d)

Chỉ từ Client đến Server.

4.

Để xây dựng ứng dụng Client-Server mô phỏng bằng ống dẫn, cần sử dụng bao nhiêu ống dẫn?

a)

1 ống dẫn

b)

2 ống dẫn (một cho request, một cho reply)

c)

3 ống dẫn

d)

Không cần ống dẫn

5.

Ống dẫn có tên (Named Pipe) khác ống dẫn bình thường (Normal Pipe) ở điểm nào?

a)

Cho phép giao tiếp giữa các quá trình có không gian địa chỉ khác nhau (nhưng trên cùng máy).

b)

Chỉ cho phép giao tiếp giữa các thread trong cùng 1 quá trình.

c)

Không yêu cầu cùng máy tính.

d)

Nhanh hơn ống dẫn bình thường.

6.

Ống dẫn bình thường (Normal Pipe) thường được sử dụng để giao tiếp giữa các thành phần nào?

a)

Các máy tính khác nhau.

b)

Các quá trình độc lập.

c)

Các thread trong cùng 1 quá trình.

d)

Quá trình và Kernel.

7.

Java hỗ trợ loại ống dẫn nào?

a)

Named Pipe

b)

Normal Pipe (thông qua PipedInputStream/PipedOutputStream)

c)

Cả Named Pipe và Normal Pipe

d)

Không hỗ trợ ống dẫn

8.

Lớp nào trong Java dùng để đọc dữ liệu từ ống dẫn?

a)

java.io.OutputStream

b)

java.io.PipedInputStream

c)

java.io.FileInputStream

d)

java.io.PipedOutputStream

9.

Lớp nào trong Java dùng để ghi dữ liệu vào ống dẫn?

a)

java.io.InputStream

b)

java.io.PipedInputStream

c)

java.io.FileOutputStream

d)

java.io.PipedOutputStream

10.

Kết nối đầu đọc (PipedInputStream) với đầu ghi (PipedOutputStream) của một ống dẫn trong Java, ta dùng phương thức nào?

a)

bind()

b)

accept()

c)

connect() (gọi từ PipedInputStream hoặc PipedOutputStream)

d)

link()

11.

Phương thức nào dùng để đọc dữ liệu từ PipedInputStream?

a)

read()

b)

write()

c)

send()

d)

get()

12.

Phương thức nào dùng để ghi dữ liệu vào PipedOutputStream?

a)

read()

b)

write()

c)

receive()

d)

put()

13.

Trong ví dụ PipeEcho, Server làm nhiệm vụ gì?

a)

Gửi ký tự người dùng nhập.

b)

Chờ nhận byte từ Client, đổi thành chữ hoa và gửi trả lại.

c)

Chỉ hiển thị kết quả.

d)

Kết nối đến một server khác.

14.

Trong ví dụ PipeEcho, Client làm nhiệm vụ gì?

a)

Nhận ký tự từ bàn phím, gửi qua Server, chờ nhận kết quả và hiển thị.

b)

Chuyển đổi ký tự thành chữ hoa.

c)

Lưu dữ liệu vào file.

d)

Chỉ gửi dữ liệu đi.

15.

PipeEcho sử dụng ống dẫn để làm phương tiện giao tiếp giữa các thành phần nào?

a)

Client Process và Server Process

b)

Client Thread và Server Thread trong cùng một ứng dụng (Process)

c)

Hai máy tính khác nhau

d)

Kernel và ứng dụng

16.

Giao thức HTTP (HyperText Transfer Protocol) chủ yếu dùng để trao đổi giữa các thành phần nào?

a)

Mail Server và Mail Client

b)

FTP Server và FTP Client

c)

Web Server và Web Browser (Web Client)

d)

DNS Server và DNS Client

17.

Cổng TCP mặc định cho giao thức HTTP là gì?

a)

25

b)

110

c)

21

d)

80

18.

Câu lệnh HTTP nào thường được Client sử dụng để yêu cầu tài nguyên từ Server?

a)

RESPONSE

b)

SEND

c)

GET, POST, HEAD

d)

ACCEPT

19.

Trong câu lệnh GET /index.html HTTP/1.0\r\n\r\n, HTTP/1.0 chỉ điều gì?

a)

Địa chỉ Server

b)

Tên tài nguyên

c)

Phiên bản giao thức HTTP đang được sử dụng

d)

Loại trình duyệt

20.

Cặp ký tự \r\n (CRLF) trong HTTP request/response dùng để làm gì?

a)

Kết thúc một dòng trong header hoặc phân tách header và body.

b)

Mã hóa dữ liệu.

c)

Chỉ định cổng.

d)

Đánh dấu bắt đầu request.

21.

Trong HTTP response message, dòng đầu tiên (HTTP/1.0 200 OK) chứa thông tin gì?

a)

Phiên bản HTTP, mã trạng thái (status code) và mô tả trạng thái.

b)

Địa chỉ IP của Client.

c)

Loại nội dung trả về.

d)

Ngày giờ hiện tại.

22.

Header Content-Type trong HTTP response cho biết điều gì?

a)

Kích thước của dữ liệu trả về.

b)

Loại (MIME type) của dữ liệu trả về (ví dụ: text/html, image/jpeg).

c)

Phiên bản của Server.

d)

Ngôn ngữ của nội dung.

23.

Giao thức SMTP (Simple Mail Transfer Protocol) dùng để làm gì?

a)

Gửi email từ Client đến Server hoặc giữa các Mail Server.

b)

Nhận email từ Mail Server về Client.

c)

Duyệt web.

d)

Truyền file.

24.

Cổng TCP mặc định cho giao thức SMTP là gì?

a)

80

b)

110

c)

25

d)

143

25.

Lệnh nào trong SMTP dùng để bắt đầu một phiên làm việc và xác định tên miền của client?

a)

MAIL FROM

b)

HELO (hoặc EHLO)

c)

RCPT TO

d)

DATA

26.

Lệnh MAIL FROM: trong SMTP dùng để chỉ định điều gì?

a)

Địa chỉ email của người gửi.

b)

Địa chỉ email của người nhận.

c)

Bắt đầu nội dung email.

d)

Kết thúc phiên làm việc.

27.

Lệnh RCPT TO: trong SMTP dùng để chỉ định điều gì?

a)

Địa chỉ email của người gửi.

b)

Địa chỉ email của người nhận.

c)

Chủ đề của email.

d)

Tên file đính kèm.

28.

Sau khi Server SMTP trả lời mã 354 cho lệnh DATA, Client cần làm gì?

a)

Gửi nội dung email, kết thúc bằng một dòng chỉ chứa dấu chấm (.).

b)

Gửi lệnh QUIT.

c)

Gửi lại lệnh DATA.

d)

Gửi thông tin xác thực.

29.

Lệnh nào dùng để kết thúc phiên làm việc SMTP?

a)

END

b)

FINISH

c)

CLOSE

d)

QUIT

30.

Giao thức POP3 (Post Office Protocol version 3) dùng để làm gì?

a)

Gửi email.

b)

Nhận email từ Mail Server về Mail Client.

c)

Truyền file.

d)

Đồng bộ hóa thư mục email.

31.

Cổng TCP mặc định cho giao thức POP3 là gì?

a)

25

b)

80

c)

110

d)

143

32.

Giao thức POP3 hoạt động qua mấy giai đoạn chính?

a)

2 giai đoạn (Chứng thực và Giao dịch/Trao đổi)

b)

1 giai đoạn

c)

3 giai đoạn

d)

4 giai đoạn

33.

Lệnh nào trong POP3 dùng để gửi tên người dùng (username) trong giai đoạn chứng thực?

a)

USER

b)

PASS

c)

AUTH

d)

LOGIN

34.

Lệnh nào trong POP3 dùng để gửi mật khẩu (password) trong giai đoạn chứng thực?

a)

USER

b)

PASS

c)

SECURE

d)

KEY

35.

Lệnh LIST trong POP3 (giai đoạn giao dịch) trả về thông tin gì?

a)

Danh sách các email trong mailbox (số thứ tự và kích thước).

b)

Nội dung của một email cụ thể.

c)

Số lượng email mới.

d)

Trạng thái của server.

36.

Lệnh RETR trong POP3 dùng để làm gì?

a)

Xóa email.

b)

Lấy nội dung của email có số thứ tự tương ứng.

c)

Liệt kê các email.

d)

Lấy header của email.

37.

Lệnh DELE trong POP3 dùng để làm gì?

a)

Đánh dấu xóa email có số thứ tự tương ứng (thường xóa thật khi QUIT).

b)

Lấy nội dung email.

c)

Khôi phục email đã xóa.

d)

Đánh dấu email là đã đọc.

38.

Lệnh nào dùng để kết thúc phiên làm việc POP3 và thực hiện các thay đổi (như xóa email đã đánh dấu DELE)?

a)

END

b)

LOGOUT

c)

CLOSE

d)

QUIT

39.

Mã trả lời nào từ Server POP3 thường chỉ ra rằng lệnh đã thực hiện thành công?

a)

+OK

b)

-ERR

c)

200

d)

250

40.

Giao thức MIME (Multipurpose Internet Mail Extensions) thường được sử dụng kết hợp với SMTP để làm gì?

a)

Mã hóa mật khẩu.

b)

Nén dữ liệu email.

c)

Cho phép gửi nội dung không phải ASCII (như hình ảnh, file đính kèm) qua email.

d)

Kiểm tra lỗi chính tả.

41.

Lập trình Socket với HTTP nghĩa là Client sẽ gửi đi chuỗi text nào?

a)

HTTP Request (ví dụ: GET /... HTTP/1.0\r\n...)

b)

SMTP commands

c)

POP3 commands

d)

Chỉ địa chỉ IP

42.

Khi lập trình Socket nhận email bằng POP3, Client cần thực hiện tuần tự các lệnh nào sau giai đoạn kết nối?

a)

USER, PASS, sau đó có thể là LIST, RETR, DELE, cuối cùng là QUIT.

b)

HELO, MAIL FROM, RCPT TO, DATA, QUIT.

c)

GET, HEAD, POST.

d)

CONNECT, SEND, RECEIVE, CLOSE.

43.

Cổng 25, 80, 110 lần lượt là cổng mặc định của các giao thức nào?

a)

HTTP, SMTP, POP3

b)

SMTP, HTTP, POP3

c)

POP3, HTTP, SMTP

d)

SMTP, POP3, HTTP

44.

Để lấy nội dung trang web http://example.com/page.html bằng Socket, Client cần kết nối đến cổng nào và gửi lệnh gì?

a)

Cổng 80, lệnh GET /page.html HTTP/1.x\r\n...

b)

Cổng 110, lệnh RETR page.html

c)

Cổng 25, lệnh DATA page.html

d)

Cổng 80, lệnh RETR /page.html

45.

Câu 125: Điểm khác biệt cơ bản giữa SMTP và POP3 là gì?

a)

SMTP dùng để gửi mail, POP3 dùng để nhận mail.

b)

SMTP dùng cổng 110, POP3 dùng cổng 25.

c)

SMTP có giai đoạn chứng thực, POP3 không có.

d)

SMTP truyền file được, POP3 không được.

46.

Câu 126: RPC là viết tắt của cụm từ nào?

a)

Remote Process Control

b)

Remote Procedure Call

c)

Real-time Protocol Communication

d)

Reliable Program Connect

47.

Câu 127: Mục tiêu chính của RPC là gì?

a)

Truyền file hiệu quả.

b)

Cho phép gọi một thủ tục (hàm) trên một máy tính từ xa như gọi thủ tục cục bộ.

c)

Tạo giao diện người dùng đồ họa.

d)

Quản lý luồng.

48.

Câu 128: Khái niệm "trong suốt về mặt ngữ nghĩa" (semantic transparency) trong RPC có nghĩa là gì?

a)

Cú pháp và cách gọi thủ tục từ xa giống hệt như gọi thủ tục cục bộ.

b)

Dữ liệu truyền đi được mã hóa.

c)

Lỗi mạng được tự động xử lý.

d)

Không cần biết địa chỉ máy chủ.

49.

Câu 129: Thành phần nào trong kiến trúc RPC chịu trách nhiệm đóng gói (marshalling) các tham số lời gọi và định hướng lời gọi đến máy chủ?

a)

Client Stub

b)

Server Stub

c)

RPC Runtime

d)

Transport Layer

50.

Câu 130: Thành phần nào trong kiến trúc RPC chịu trách nhiệm mở gói (unmarshalling) các tham số, gọi thủ tục thực sự trên máy chủ và đóng gói kết quả trả về?

a)

Client Stub

b)

Server Stub

c)

RPC Runtime

d)

Transport Layer

51.

Câu 131: Thành phần nào trong kiến trúc RPC chịu trách nhiệm xử lý việc truyền dữ liệu qua mạng (chọn đường, mã hóa, báo nhận...)?

a)

Client Stub

b)

Server Stub

c)

RPC Runtime (bao gồm cả tầng Transport)

d)

Application Layer

52.

Câu 132: RPC đơn giản hóa việc xây dựng loại ứng dụng nào?

a)

Ứng dụng Desktop đơn lẻ.

b)

Ứng dụng Client-Server và ứng dụng phân tán.

c)

Trình điều khiển thiết bị.

d)

Hệ điều hành.

53.

Câu 133: RMI là viết tắt của cụm từ nào?

a)

Remote Machine Interface

b)

Real-time Method Interface

c)

Remote Method Invocation

d)

Reliable Method Invocation

54.

Câu 134: RMI là cơ chế RPC được cài đặt bằng ngôn ngữ nào?

a)

C++

b)

Python

c)

Java

d)

C#

55.

RMI cho phép điều gì xảy ra giữa các đối tượng Java?

a)

Một đối tượng Java trên một máy ảo (JVM) gọi phương thức của đối tượng Java trên một máy ảo khác.

b)

Chia sẻ biến trực tiếp giữa các JVM.

c)

Gọi thủ tục C++ từ Java.

d)

Thực thi mã máy trực tiếp từ xa.

56.

Trong kiến trúc RMI, thành phần tương đương Client Stub của RPC được gọi là gì?

a)

Stub

b)

Skeleton

c)

Remote Reference Layer

d)

Transport Layer

57.

Trong kiến trúc RMI, thành phần tương đương Server Stub của RPC được gọi là gì?

a)

Stub

b)

Skeleton

c)

Remote Reference Layer

d)

Transport Layer

58.

Lớp hoặc Interface nào trong Java mà một interface phải kế thừa để định nghĩa các phương thức có thể gọi từ xa bằng RMI?

a)

java.rmi.Remote

b)

java.rmi.RemoteObject

c)

java.rmi.Server.UnicastRemoteObject

d)

java.io.Serializable

59.

Lớp cài đặt (implementation class) của một đối tượng Remote trong RMI thường phải kế thừa lớp nào?

a)

java.rmi.Remote

b)

java.rmi.server.UnicastRemoteObject (hoặc sử dụng phương thức exportObject của nó)

c)

java.rmi.Naming

d)

java.rmi.RemoteException

60.

Mọi phương thức được khai báo trong Remote Interface phải khai báo ném ra (throws) ngoại lệ nào?

a)

IOException

b)

NullPointerException

c)

java.rmi.RemoteException

d)

SecurityException

61.

Dịch vụ nào trong RMI đóng vai trò như một danh bạ, cho phép Server đăng ký đối tượng Remote và Client tìm kiếm đối tượng Remote thông qua tên?

a)

Skeleton Service

b)

RMI Registry (hoặc dịch vụ Naming khác như JNDI)

c)

Stub Service

d)

Transport Service

62.

Lệnh nào dùng để khởi động RMI Registry trên cổng mặc định (1099)?

a)

java RmiRegistry

b)

start registry

c)

rmiregistry (hoặc start rmiregistry trên Windows)

d)

rmi_server

63.

Lớp java.rmi.Naming cung cấp các phương thức tĩnh như bind(), rebind(), unbind(), lookup() để làm gì?

a)

Tương tác với RMI Registry để đăng ký và tìm kiếm đối tượng Remote.

b)

Tạo Stub và Skeleton.

c)

Quản lý kết nối mạng.

d)

Xử lý ngoại lệ RemoteException.

64.

Công cụ nào của JDK dùng để tạo ra các lớp Stub và Skeleton từ lớp cài đặt đối tượng Remote?

a)

javac

b)

javadoc

c)

rmic (không còn cần thiết từ Java 5 nếu dùng UnicastRemoteObject)

d)

jar

65.

Khi Client gọi phương thức lookup("rmi://host:port/ObjectName"), nó nhận lại được gì?

a)

Đối tượng Remote thực sự trên Server.

b)

Một đối tượng Stub đại diện cho đối tượng Remote đó.

c)

Địa chỉ IP của Server.

d)

Một Skeleton.

66.

Thứ tự các bước chính để xây dựng ứng dụng RMI là gì?

a)

Định nghĩa Remote Interface -> Cài đặt Interface -> Viết Server (tạo, đăng ký đối tượng) -> Viết Client (lookup, gọi phương thức) -> Biên dịch -> Chạy rmiregistry -> Chạy Server -> Chạy Client.

b)

Viết Client -> Viết Server -> Định nghĩa Interface -> Cài đặt Interface -> Chạy.

c)

Chạy rmiregistry -> Viết Server -> Viết Client -> Biên dịch.

d)

Định nghĩa Interface -> Viết Client -> Cài đặt Interface -> Viết Server -> Chạy.

67.

Trong ví dụ RMI (sayHello), Server cần làm gì sau khi tạo đối tượng Hello?

a)

Gọi phương thức sayHello() ngay lập tức.

b)

Đăng ký đối tượng Hello với RMI Registry bằng Naming.rebind() hoặc Naming.bind().

c)

Tạo Stub bằng tay.

d)

Chờ Client kết nối trực tiếp.

68.

Trong ví dụ RMI (sayHello), Client cần làm gì để có thể gọi phương thức sayHello()?

a)

Tạo một đối tượng Hello mới.

b)

Sử dụng Naming.lookup() để lấy về một tham chiếu (Stub) đến đối tượng Hello đã đăng ký trên Server.

c)

Kết nối Socket đến Server.

d)

Chạy lệnh rmic trên Client.

69.

Policy file trong RMI được sử dụng để làm gì khi chạy Server?

a)

Định nghĩa các quyền (permissions) bảo mật cho mã nguồn được tải về hoặc thực thi, ví dụ quyền kết nối mạng.

b)

Chứa mã nguồn của Stub.

c)

Lưu trữ danh sách các Client được phép kết nối.

d)

Cấu hình RMI Registry.

70.

Tham số -Djava.security.policy=... khi chạy Server RMI dùng để làm gì?

a)

Chỉ định đường dẫn đến policy file để JVM sử dụng.

b)

Bật chế độ gỡ lỗi.

c)

Đặt tên cho Server.

d)

Chỉ định cổng RMI Registry.

71.

Stub trong RMI hoạt động ở phía nào?

a)

Client

b)

Server

c)

RMI Registry

d)

Cả Client và Server

72.

Skeleton trong RMI hoạt động ở phía nào?

a)

Client

b)

Server

c)

RMI Registry

d)

Cả Client và Server

73.

Lợi ích chính của RMI so với lập trình Socket thuần túy là gì?

a)

Trừu tượng hóa việc lập trình mạng, cho phép lập trình viên tập trung vào logic nghiệp vụ thay vì chi tiết truyền thông.

b)

Hiệu năng cao hơn Socket.

c)

An toàn hơn Socket.

d)

Không cần JVM.

74.

Tham số và kết quả trả về của phương thức RMI phải thuộc loại nào?

a)

Chỉ kiểu nguyên thủy.

b)

Chỉ kiểu String.

c)

Kiểu nguyên thủy hoặc các đối tượng implement java.io.Serializable (hoặc là Remote object).

d)

Chỉ kiểu Object.

75.

Nếu RMI Registry không được khởi động, điều gì sẽ xảy ra khi Server cố gắng bind hoặc Client cố gắng lookup?

a)

Chương trình vẫn chạy bình thường.

b)

Ném ra ngoại lệ (thường là ConnectException hoặc tương tự).

c)

Tự động khởi động Registry.

d)

Chờ vô thời hạn.

76.

Từ góc độ mạng, Socket đại diện cho điều gì?

a)

Một trong hai điểm cuối của một kết nối giao tiếp hai chiều.

b)

Toàn bộ đường truyền vật lý.

c)

Một giao thức mạng.

d)

Địa chỉ IP.

77.

Từ góc độ người lập trình, Socket là gì?

a)

Giao diện lập trình ứng dụng (API) để thực hiện giao tiếp mạng.

b)

Một lớp phần cứng.

c)

Một hệ điều hành mạng.

d)

Một ngôn ngữ lập trình.

78.

Socket API lần đầu tiên được giới thiệu trong hệ điều hành nào?

a)

Windows 3.1

b)

MacOS System 7

c)

UNIX version 4.3 BSD (Berkeley Software Distribution)

d)

MS-DOS

79.

Socket loại AF_UNIX (hay PF_UNIX) dùng để giao tiếp giữa các quá trình ở đâu?

a)

Trong cùng một máy tính.

b)

Giữa các máy tính khác nhau trong mạng LAN.

c)

Giữa các máy tính trên Internet.

d)

Giữa ứng dụng và Kernel.

80.

Socket loại AF_INET (hay PF_INET) dùng để giao tiếp qua mạng nào?

a)

Mạng sử dụng bộ giao thức TCP/IP (phổ biến nhất là Internet).

b)

Mạng Novell Netware.

c)

Mạng AppleTalk.

d)

Chỉ trong cùng máy tính.

81.

Để hai quá trình giao tiếp qua Socket AF_INET, cần thông tin gì để xác định điểm cuối?

a)

Địa chỉ IP và Số hiệu cổng (Port Number).

b)

Chỉ địa chỉ IP.

c)

Chỉ số hiệu cổng.

d)

Tên máy và tên người dùng.

82.

Số hiệu cổng (Port) là một số bao nhiêu bit?

a)

8 bit

b)

16 bit

c)

32 bit

d)

64 bit

83.

Dải cổng nào được gọi là "cổng hệ thống" hay "cổng được biết rõ" (Well-known Ports)?

a)

0 – 1023

b)

1024 – 49151

c)

49152 – 65535

d)

Tất cả các cổng

84.

Dải cổng nào được gọi là "cổng đã đăng ký" (Registered Ports)?

a)

0 – 1023

b)

1024 – 49151

c)

49152 – 65535

d)

Chỉ các cổng trên 60000

85.

Cổng nào sau đây thường được sử dụng cho FTP (Control)?

a)

80

b)

21

c)

25

d)

110

86.

Dịch vụ DNS (Domain Name System) thường sử dụng cổng nào?

a)

Chỉ TCP 53

b)

Chỉ UDP 53

c)

Cả TCP và UDP cổng 53

d)

Cổng 80

87.

Chế độ giao tiếp Socket nào yêu cầu thiết lập kết nối trước khi truyền dữ liệu và đảm bảo dữ liệu đến đúng thứ tự, không lỗi?

a)

TCP (Transmission Control Protocol)

b)

UDP (User Datagram Protocol)

c)

IP (Internet Protocol)

d)

ICMP (Internet Control Message Protocol)

88.

Chế độ giao tiếp Socket nào không cần thiết lập kết nối, gửi dữ liệu dưới dạng các gói độc lập (datagram) và không đảm bảo việc gửi đến hoặc thứ tự?

a)

TCP

b)

UDP

c)

HTTP

d)

SMTP

89.

Đặc điểm nào sau đây là của TCP?

a)

Hướng kết nối (Connection-oriented), đáng tin cậy (Reliable).

b)

Không kết nối (Connectionless), không đáng tin cậy.

c)

Tốc độ nhanh hơn UDP.

d)

Header nhỏ hơn UDP.

90.

Đặc điểm nào sau đây là của UDP?

a)

Hướng kết nối, đáng tin cậy.

b)

Không kết nối (Connectionless), không đáng tin cậy (best-effort).

c)

Đảm bảo thứ tự gói tin.

d)

Luôn kiểm tra lỗi và truyền lại.

91.

Loại ứng dụng nào phù hợp với việc sử dụng TCP?

a)

Truyền file (FTP), duyệt web (HTTP), gửi mail (SMTP), yêu cầu độ chính xác cao.

b)

Streaming video/audio trực tiếp, game online thời gian thực, DNS query.

c)

Chỉ ứng dụng yêu cầu tốc độ cao nhất.

d)

Tất cả các ứng dụng mạng.

92.

Loại ứng dụng nào phù hợp với việc sử dụng UDP?

a)

Truyền file (FTP), duyệt web (HTTP).

b)

Streaming video/audio trực tiếp, game online thời gian thực, DNS query, VoIP (Voice over IP), chấp nhận mất mát nhỏ để đổi lấy tốc độ.

c)

Chỉ ứng dụng yêu cầu độ tin cậy tuyệt đối

d)

Chỉ ứng dụng chạy trên mạng LAN

93.

Trong luồng hoạt động của Socket TCP Server, hàm nào được gọi để chờ đợi yêu cầu kết nối từ Client?

a)

bind()

b)

listen()

c)

accept()

d)

connect()

94.

Hàm bind() trong lập trình Socket Server dùng để làm gì?

a)

Gán một địa chỉ IP cục bộ và số hiệu cổng cho Socket.

b)

Bắt đầu lắng nghe kết nối.

c)

Chấp nhận kết nối từ Client.

d)

Kết nối đến Server khác.

95.

Hàm listen() trong lập trình Socket TCP Server dùng để làm gì?

a)

Gán địa chỉ IP và cổng.

b)

Đánh dấu Socket sẵn sàng chấp nhận kết nối đến và thiết lập hàng đợi cho các kết nối đang chờ.

c)

Chấp nhận một kết nối cụ thể.

d)

Đóng kết nối.

96.

Hàm connect() trong lập trình Socket TCP Client dùng để làm gì?

a)

Tạo Socket.

b)

Lắng nghe kết nối.

c)

Yêu cầu thiết lập kết nối đến một địa chỉ IP và cổng của Server.

d)

Gửi dữ liệu.

97.

Hàm accept() của TCP Server trả về cái gì khi có kết nối từ Client?

a)

Địa chỉ IP của Client.

b)

Một số nguyên đại diện kết nối.

c)

Một Socket mới đại diện cho kết nối cụ thể với Client đó.

d)

Thông báo thành công/thất bại.

98.

Sau khi kết nối TCP được thiết lập, Client và Server sử dụng hàm nào để gửi dữ liệu?

a)

read() hoặc recv()

b)

write() hoặc send()

c)

accept()

d)

listen()

99.

Sau khi kết nối TCP được thiết lập, Client và Server sử dụng hàm nào để nhận dữ liệu?

a)

read() hoặc recv()

b)

write() hoặc send()

c)

connect()

d)

bind()

100.

Hàm close() trong lập trình Socket dùng để làm gì?

a)

Đóng kết nối và giải phóng tài nguyên liên quan đến Socket.

b)

Tạm dừng kết nối.

c)

Chỉ đóng chiều gửi.

d)

Chỉ đóng chiều nhận.

101.

Lớp nào trong gói java.net được sử dụng để tạo Socket phía Client trong giao tiếp TCP?

a)

java.net.ServerSocket

b)

java.net.Socket

c)

java.net.DatagramSocket

d)

java.net.URL

102.

Lớp nào trong gói java.net được sử dụng để tạo Socket phía Server, lắng nghe và chấp nhận kết nối TCP?

a)

java.net.ServerSocket

b)

java.net.Socket

c)

java.net.DatagramPacket

d)

java.net.InetAddress

103.

Để lấy InputStream từ một đối tượng java.net.Socket (nhằm đọc dữ liệu từ phía bên kia), ta dùng phương thức nào?

a)

getOutputStream()

b)

getInputStream()

c)

getReader()

d)

getStream()

104.

Để lấy OutputStream từ một đối tượng java.net.Socket (nhằm ghi dữ liệu đến phía bên kia), ta dùng phương thức nào?

a)

getOutputStream()

b)

getInputStream()

c)

getWriter()

d)

putStream()

105.

Phương thức accept() của lớp ServerSocket là loại phương thức nào?

a)

Blocking (nghẽn) - nó sẽ dừng chương trình cho đến khi có kết nối.

b)

Non-blocking (không nghẽn) - trả về ngay lập tức.

c)

Asynchronous (bất đồng bộ).

d)

Static.

106.

Mô hình Server phục vụ tuần tự (sequential) có nghĩa là gì?

a)

Server xử lý một yêu cầu của Client từ đầu đến cuối trước khi chấp nhận yêu cầu từ Client khác.

b)

Server xử lý nhiều yêu cầu Client cùng lúc bằng nhiều luồng.

c)

Server gửi dữ liệu tuần tự từng byte.

d)

Client phải gửi yêu cầu tuần tự.

107.

Mô hình Server phục vụ song song (concurrent) thường được cài đặt bằng cách nào?

a)

Tạo một luồng (Thread) mới để xử lý mỗi kết nối Client được chấp nhận.

b)

Sử dụng nhiều cổng khác nhau.

c)

Client tự tạo luồng.

d)

Chỉ dùng một luồng chính duy nhất.

108.

Ưu điểm của Server phục vụ song song so với tuần tự là gì?

a)

Đáp ứng được nhiều Client cùng lúc, hiệu quả hơn, không làm Client khác phải chờ lâu.

b)

Dễ lập trình hơn.

c)

Tiêu tốn ít tài nguyên hơn.

d)

An toàn hơn.

109.

Trong lập trình UDP Socket, Server có cần gọi hàm listen() và accept() không?

a)

Có, giống như TCP.

b)

Không, UDP là không kết nối nên không có khái niệm lắng nghe/chấp nhận kết nối.

c)

Chỉ cần gọi listen().

d)

Chỉ cần gọi accept().

110.

Lớp nào trong java.net dùng để tạo Socket cho giao tiếp UDP?

a)

java.net.Socket

b)

java.net.ServerSocket

c)

java.net.DatagramSocket

d)

java.net.MulticastSocket

111.

Lớp nào trong java.net dùng để đóng gói dữ liệu (bao gồm dữ liệu, địa chỉ IP, cổng) gửi hoặc nhận qua UDP Socket?

a)

java.net.DatagramSocket

b)

java.net.DatagramPacket

c)

java.net.SocketAddress

d)

java.net.In

112.

Trong java.net dùng để đóng gói dữ liệu (bao gồm dữ liệu, địa chỉ IP, cổng) gửi hoặc nhận qua UDP Socket?

a)

java.net.DatagramSocket

b)

java.net.DatagramPacket

c)

java.net.SocketAddress

d)

java.net.InetPacket

113.

Khi tạo DatagramSocket cho Server UDP, cần phải chỉ định tham số gì trong constructor?

a)

Số hiệu cổng mà Server sẽ lắng nghe trên đó.

b)

Địa chỉ IP của Client.

c)

Kích thước buffer.

d)

Không cần tham số.

114.

Khi tạo DatagramSocket cho Client UDP, có cần chỉ định cổng không?

a)

Có, phải chỉ định cổng của Server.

b)

Không bắt buộc, nếu không chỉ định, hệ thống sẽ tự gán một cổng ngẫu nhiên.

c)

Có, phải chỉ định một cổng cố định cho Client.

d)

Client UDP không dùng DatagramSocket.

115.

Phương thức nào của DatagramSocket dùng để gửi đi một DatagramPacket?

a)

write()

b)

put()

c)

send(DatagramPacket dp)

d)

transmit()

116.

Phương thức nào của DatagramSocket dùng để nhận một DatagramPacket?

a)

read()

b)

get()

c)

receive(DatagramPacket dp)

d)

accept()

117.

Phương thức receive() của DatagramSocket là loại phương thức nào?

a)

Blocking (nghẽn) - dừng chương trình cho đến khi nhận được một packet.

b)

Non-blocking (không nghẽn).

c)

Trả về ngay lập tức có dữ liệu hay không.

d)

Chỉ hoạt động ở Client.

118.

Khi tạo DatagramPacket để gửi đi, cần cung cấp những thông tin gì?

a)

Mảng byte dữ liệu, độ dài dữ liệu, địa chỉ IP đích (InetAddress), cổng đích.

b)

Chỉ mảng byte dữ liệu.

c)

Chỉ địa chỉ IP và cổng đích.

d)

Kích thước buffer và cổng nguồn.

119.

Khi tạo DatagramPacket để nhận dữ liệu, cần cung cấp những thông tin gì?

a)

Một mảng byte (buffer) để chứa dữ liệu nhận được và độ dài của buffer đó.

b)

Địa chỉ IP và cổng nguồn mong đợi.

c)

Kích thước dữ liệu mong đợi.

d)

Không cần cung cấp gì.

120.

Sau khi gọi receive(packet), làm thế nào để lấy được dữ liệu thực sự nhận được từ DatagramPacket?

a)

packet.readData()

b)

packet.getData() (trả về toàn bộ buffer), kết hợp với packet.getLength() để biết độ dài thực sự.

c)

packet.getString()

d)

packet.getBytesReceived()