Đề thi môn Lập trình mạng - Mã đề 247
Viết chương trình FileClient sử dụng mô hình blocking làm nhiệm vụ sau:
1. Kết nối đến server có địa chỉ/tên miền được nhập từ bàn phím.
2. Nhận tên file từ bàn phím và gửi yêu cầu tải file đến server, cú phảp có dạng “GET \n”.
3. Xử lý kết quả từ server
a. Nếu server báo lỗi, thì dữ liệu gửi trả có dạng “FAILED\n\n\n”.
b. Nếu server báo thành công thì dữ liệu gửi trả có dạng “OK\n\n\n\n”. Phân tích kết quả từ server và ghi nội dung file nhận được ra đĩa.
4. Chương trình có thể tải nhiều file cùng một lúc, từ nhiều server.
2 trang |
Chia sẻ: hachi492 | Ngày: 07/01/2022 | Lượt xem: 410 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Đề thi môn Lập trình mạng - Mã đề 247, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Phần 1. Trắc nghiệm
(6đ – tô kết quả vào phiếu trả lời trắc nghiệm)
ĐỀ THI GIỮA KỲ MÔN LẬP TRÌNH MẠNG
Thời gian: 90 phút – Không được phép dùng tài liệu
Thư viện liên kết động của Windows Socket có tên là:
WinSock.DLL
WinSock2.DLL
WS2.DLL
WS2_32.DLL
Công cụ nào sử dụng để kiểm tra hoạt động của một máy chủ phân giải tên miền
Ping
Nslookup
Netstat
Ipconfig
Biên của thông điệp trong các giao thức hướng dòng có được bảo toàn hay không ?
Có
Không
Tùy từng trường hợp, nếu được tổ chức hợp lý.
Công cụ dùng để theo dõi tài nguyên sử dụng của máy tính trên hệ điều hành Windows là
Task Manager
Resource Monitor
Wireshark
Phương án a và b.
Nếu cần phát triển thêm trình điều khiển cho một loại thiết bị mới. Ứng dụng sẽ phải viết ở tầng nào của Windows Socket
Application
Provider
Transport Protocol
Không tầng nào đúng
Công cụ dùng để bắt các gói tin gửi ra và vào một giao diện mạng của máy tính là
Netcat
Network Monitor
Cain
Không phương án nào đúng.
Công cụ đa năng, vừa có thể đóng vai trò client, vừa server, chạy trên giao thức TCP, UDP là.
Netcat
TCPDump
Netstat
Network Monitor
WSADATA là cấu trúc dùng để
Truyền thông tin về phiên bản WinSock mà ứng dụng muốn khởi tạo
Nhận thông tin về phiên bản WinSock có trên hệ thống.
Cả hai đáp án đều sai.
Để có thể sử dụng thư viện Windows Socket, tệp tiêu đề cần khai báo là:
Winsock.h
Winsock2.h
Ws2_32.h
Ws2.h
Nếu cần phải viết một ứng dụng cần tính đáp ứng nhanh và chấp nhận sai sót. Giao thức lựa chọn sẽ là
247
TCP
IP
ICMP
UDP
Dịch vụ phân giải tên miền chạy ở tầng nào trong các tầng sau đây
Application
Transport
Internetwork
Datalink
Giao thức nào được sử dụng để chia sẻ một địa chỉ toàn cục cho một nhóm các máy tính trong mạng LAN.
VLAN
MAC
NAT
Không đáp án nào đúng
Trong một mạng máy tính được chia sẻ chung một địa chỉ IP toàn cục. Thiết lập nào sau đây sẽ cho phép một máy tính từ Internet chủ động kết nối đến một máy chủ trong mạng.
DMZ
Virtual Server
Port Forwarding
Cả ba phương án trên.
Để có thể sử dụng dụng thư viện Windows Socket, tệp thư viện cần khai báo cho quá trình liên kết là.
Winsock.lib
WS2_32.LIB
WS2_32.DLL
Winsock2.dll
Nếu cần phải thiết kế một giao thức mới, ứng dụng sẽ phải tích hợp vào tầng nào của Windows Socket API
Application
Provider
Transport Protocol
Không tầng nào đúng.
Công cụ chuẩn đoán mạng dùng để hiển thị các kết nối hiện có trên máy tính là
Wireshark
TCPView
Netcat
Tất cả các công cụ trên
Trình điều khiển cho một thiết bị mạng sẽ được chạy ở chế độ
User Mode
Kernel Mode
System Mode
Không phương án nào đúng.
Hàm nào sau đây thực hiện công việc khởi tạo Windows Socket
WSStartup
WinsockStartup
SocketStartup
WSAStartup
Hàm nào sau đây sử dụng để giải phóng Windows Socket API.
WSACleanup
WSCleanup
Cleanup
Phương án khác:
Lệnh nào sau đây dùng để tạo một socket TCP
socket(AF_INET,SOCK_STREAM,IPPROTO_TCP).
socket(AF_INET,SOCK_DGRAM,IPROTO_TCP).
Socket(AF_INET,SOCK_STREAM,IPPROTO_UDP)
socket(AF_INET,SOCKSTREAM,IPPROTOTCP).
Cấu trúc nào được sử dụng để khai báo địa chỉ socket internet:
sock_addr
sockaddr
sockaddr_in
sock_addr_in
Các giá trị lớn hơn 01 byte trong cấu trúc lưu trữ địa chỉ của socket được tổ chức theo kiểu:
Đầu to
Đầu nhỏ
Tùy trường hợp
Để lấy mã lỗi của thao tác ngay trước đó. Hàm nào sau đây sẽ được sử dụng
GetLastError
WSAGetError
WSAGetLastError
WSALastError
Để chuyển đổi một xâu sang địa chỉ IP, lệnh nào sau đây là đúng
inet_ntoa(“192.168.1.1”);
inet_aton(“192.168.1.1”);
inet_addr(“192.168.1.1”);
inet_stoi(“192.168.1.1”);
Trong Windows Socket, với các hàm không có tiền tố WSA thì mã lỗi trả về là 0 có nghĩa là:
Thành công
Thất bại
Tùy trường hợp
Đoạn chương trình sau thực hiện kết nối đến một server, điền vào vị trí , , các lệnh còn thiếu.
ret = connect(s, (sockaddr*)&serverAddr,sizeof(serverAddr));
if (ret ==SOCKET_ERROR) {
printf(“Loi ket noi: %d”, );
;
;
};
: GetLastError, : closesocket (s), : WSACleanup().
: WSAGetLastError(), close(s), : Cleanup().
: WSALastError(), : closesocket(s), : để trống.
Không phương án nào đúng.
Để chuyển đổi một địa chỉ IP lưu trong biến serverAddr lưu trữ địa chỉ socket sang dạng xâu ký tự, lệnh nào sau đây là đúng
inet_ntos(serverAddr.sin_addr);
inet_ntoa(serverAddr.s_addr);
inet_itos(serverAddr.sin_addr);
inet_ntoa(serverAddr.sin_addr);
Lệnh nào sau đây dùng để tạo một socket UDP
socket(AF_INET,SOCK_UDP, IPPROTO_TCP).
socket(AF_INET,SOCK_DGRAM,IPROTO_TCP).
Socket(AF_INET,SOCK_STREAM,IPPROTO_UDP)
Không lệnh nào đúng.
Để chuyển đổi giá trị cổng từ đầu nhỏ sang đầu to, lệnh nào sau đây sẽ được sử dụng
ntohl
ntohs
htonl
htons
Để thực hiện phân giải tên miền bằng WinSock, cần bổ sung tệp tiêu đề nào
Winsock2.h
Ws2_32.h
Ws2ip.h
Ws2tcpip.
Phần 2. Tự luận
(4đ – viết ra giấy tự chuẩn bị)
Viết chương trình FileClient sử dụng mô hình blocking làm nhiệm vụ sau:
Kết nối đến server có địa chỉ/tên miền được nhập từ bàn phím.
Nhận tên file từ bàn phím và gửi yêu cầu tải file đến server, cú phảp có dạng “GET \n”.
Xử lý kết quả từ server
Nếu server báo lỗi, thì dữ liệu gửi trả có dạng “FAILED\n\n\n”.
Nếu server báo thành công thì dữ liệu gửi trả có dạng “OK\n\n\n\n”. Phân tích kết quả từ server và ghi nội dung file nhận được ra đĩa.
Chương trình có thể tải nhiều file cùng một lúc, từ nhiều server.
Các file đính kèm theo tài liệu này:
- de_thi_mon_lap_trinh_mang_ma_de_247.docx