Ngân hàng câu hỏi thi Lập Trình Mạng – Lương Ánh Hoàng Thư viện liên kết động Windows Socket có tên là: a WinSock.DLL c WS2.DLL b WinSock2.DLL d WS2_32.DLL Để sử dụng thư viện Windows Socket, tệp tiêu đề cần khai báo là: a Winsock.h c Ws2_32.h b Winsock2.h d Ws2.h Để sử dụng dụng thư viện Windows Socket, tệp thư viện cần khai báo cho trình liên kết a Winsock.lib c WS2_32.DLL b WS2_32.LIB d Winsock2.dll Công cụ chuẩn đoán mạng dùng để hiển thị kết nối có máy tính a Wireshark c Netcat b TCPView d Tất công cụ Công cụ dùng để theo dõi tài nguyên sử dụng máy tính hệ điều hành Windows a Task Manager c Wireshark b Resource Monitor d Phương án a b Công cụ dùng để bắt gói tin gửi vào giao diện mạng máy tính a Netcat c Wireshark b Network Monitor d b c Công cụ đa năng, vừa đóng vai trò client, vừa server, chạy giao thức TCP, UDP a Netcat c Netstat b TCPDump d Network Monitor Nếu cần phải viết ứng dụng cần tính đáp ứng nhanh chấp nhận sai sót Giao thức lựa chọn a TCP c ICMP b IP d UDP Dịch vụ phân giải tên miền chạy tầng tầng sau a Application c Internetwork b Transport d Datalink 10 Giao thức sử dụng để chia sẻ địa toàn cục cho nhóm máy tính mạng LAN a VLAN c NAT b MAC d Không đáp án 11 Trong mạng máy tính chia sẻ chung địa IP toàn cục Thiết lập sau cho phép máy tính từ Internet chủ động kết nối đến máy chủ mạng a DMZ c Port Forwarding b Virtual Server d Cả ba phương án 12 Công cụ sử dụng để kiểm tra hoạt động máy chủ phân giải tên miền a Ping c Netstat b Nslookup d Ipconfig 13 Nếu cần phát triển thêm trình điều khiển cho loại thiết bị Ứng dụng phải viết tầng Windows Socket a Application c Transport Protocol b Provider d Không tầng 14 Nếu cần phải thiết kế giao thức mới, ứng dụng phải tích hợp vào tầng Windows Socket API a Application c Transport Protocol b Provider d Không tầng 15 Trình điều khiển cho thiết bị mạng chạy chế độ a User Mode c System Mode b Kernel Mode d Không phương án 16 Biên thông điệp giao thức hướng dòng có bảo toàn hay không ? a Có c Tùy trường hợp, tổ chức b Không hợp lý 17 Hàm sau thực công việc khởi tạo Windows Socket a WSStartup c SocketStartup b WinsockStartup d WSAStartup 18 WSADATA cấu trúc dùng để a Truyền thông tin phiên WinSock mà ứng dụng muốn khởi tạo b Nhận thông tin phiên WinSock có hệ thống c Cả hai đáp án sai 19 Hàm sau sử dụng để giải phóng Windows Socket API a WSACleanup c Cleanup b WSCleanup d Phương án khác:… 20 Để lấy mã lỗi thao tác trước Hàm sau sử dụng a GetLastError c WSAGetLastError b WSAGetError d WSALastError 21 Đoạn chương trình sau thực kết nối đến server, điền vào vị trí , , lệnh thiếu ret = connect(s, (sockaddr*)&serverAddr,sizeof(serverAddr)); if (ret ==SOCKET_ERROR) { printf(“Loi ket noi: %d”, ); ; ; }; a : GetLastError, : closesocket (s), c : WSALastError(), : : WSACleanup() closesocket(s), : để trống b : WSAGetLastError(), close(s), d : WSAGetLastError(), : : Cleanup() closesocket(s), : WSACleanup() 22 Trong Windows Socket, với hàm tiền tố WSA mã lỗi trả có nghĩa là: a Thành công c Tùy trường hợp b Thất bại 23 Lệnh sau dùng để tạo socket TCP a socket(AF_INET,SOCK_STREAM,IPPROT c Socket(AF_INET,SOCK_STREAM,IPPROT O_TCP) O_UDP) b socket(AF_INET,SOCK_DGRAM,IPROTO_ d socket(AF_INET,SOCKSTREAM,IPPROT TCP) OTCP) 24 Lệnh sau dùng để tạo socket UDP a socket(AF_INET,SOCK_UDP, c socket(AF_INET,SOCK_STREAM,IPPROT IPPROTO_TCP) O_UDP) b socket(AF_INET,SOCK_DGRAM,IPROTO_ d socket(AF_INET, SOCK_DGRAM, TCP) IPPROTO_UDP) 25 Cấu trúc sử dụng để khai báo địa socket internet: a sock_addr c sockaddr_in b sockaddr d sock_addr_in 26 Các giá trị lớn 01 byte cấu trúc lưu trữ địa socket tổ chức theo kiểu: a Đầu to c Tùy trường hợp b Đầu nhỏ 27 Để chuyển đổi xâu sang địa IP, lệnh sau a inet_ntoa(“192.168.1.1”); c inet_addr(“192.168.1.1”); b inet_aton(“192.168.1.1”); d inet_stoi(“192.168.1.1”); 28 Để chuyển đổi địa IP lưu biến serverAddr lưu trữ địa socket sang dạng xâu ký tự, lệnh sau a inet_ntos(serverAddr.sin_addr); c inet_itos(serverAddr.sin_addr); b inet_ntoa(serverAddr.s_addr); d inet_ntoa(serverAddr.sin_addr); 29 Để chuyển đổi giá trị cổng từ đầu nhỏ sang đầu to, lệnh sau sử dụng a ntohl c htonl b ntohs d htons 30 Để thực phân giải tên miền WinSock, cần bổ sung tệp tiêu đề a Winsock2.h c Ws2ip.h b Ws2_32.h d Ws2tcpip.h 31 Để thực phân giải tên miền WinSock, hàm sau sử dụng a getaddrinfo b gethostinfo c getpeerinfo d Cả ba hàm 32 Kết trả thao tác phân giải tên miền phải giải phóng hàm/toán tử a : Mảng, delete b : Danh sách liên kết đơn, free c : Danh sách liên kết kép, d : Danh sách liên kết đơn, freeaddrinfo freeaddrinfo 33 Trường sau cấu trúc addrinfo chứa thông tin địa socket phân giải a ai_addr c addr b sock_addr d in_addr 34 Trong trường hợp sau hàm bind thất bại a Tường lửa chặn c Socket không hợp lệ b Đã có ứng dụng khác mở sử dụng cổng d Cả ba trường hợp trên 35 Lệnh sau gắn socket s vào giao diện mạng mô tả cấu trúc địa serverAddr a bind(s, (sockaddr_in*)&serverAddr, c bind(s, (sockaddr*)&serverAddr, sizeof(serverAddr)); sizeof(sockaddr_in)); b bind(s, (sockaddr*)serverAddr, d bind(s, (sockaddr*)&serverAddr, sizeof(serverAddr)); sizeof(serverAddr)); 36 Lệnh sau gán giá trị cổng 8080 cho cấu trúc địa serverAddr a serverAddr.sin_port = 8080 c serverAddr.sin_port = htonl(8080) b serverAddr.s_port = 8080 d serverAddr.sin_port = htons(8080) 37 Đoạn chương trình sau thực chấp nhận kết nối từ client Điền vào chỗ trống phương án cần thiết SOCKET server,client; sockaddr_in clientAddr; int len; len = ; client = accept(server,, ); a = 0, = clientAddr, = len c = 0, = (sockaddr*)&clientAddr, b = sizeof(client), = &clientAddr, = &len =len d = sizeof(clientAddr), = (sockaddr*)&clientAddr,&len 38 Đoạn chương trình sau thực đọc liệu từ bàn phím gửi qua socket s Điền vào chỗ trống lệnh thiếu char str[1024]; int ret = 0; gets(str); = send(s,str,,0); if ( hThread = CreateThread(0,0,ReceiverThread,,0,0); }; Giá trị thích hợp cho a ret b c c Để trống d pHead 81 Giá trị thích hợp cho a sizeof(cAddr) b cAddrLen c &cAddrLen d &ret 82 Giá trị thích hợp cho a new Connection b new SOCKET c d Phương án khác… 83 Giá trị thích hơp cho a pTmp b pCur c pHead d pHead->pNext 84 Giá trị thích hợp cho a pHead b pCur c pTmp d pCur->pNext 85 Giá trị thích hợp cho a c b listen c d Phương án khác… 86 Giá trị thích hợp cho a pHead b pCur c pTmp d 87 Đoạn chương trình sau thực phân giải tên miền nhập từ bàn phím với cổng 8888 sau kết hình, điền vào chỗ trống lệnh thích hợp addrinfo * info,*pCur; char host[1024]; SOCKADDR_IN addr; int ret; printf("Nhap dia chi server:"); gets(host); ret = getaddrinfo(host,,0,); if (ret) { printf("Khong tim thay server"); return 0; }; pCur = info; while (pCur) { memcpy(&addr,,pCur->ai_addrlen); printf("%s\n",); pCur = pCur->ai_next; }; freeaddrinfo(pCur); Giá trị thích hợp cho a “8888” b 8888 c htons(8888) d ntohs(8888); 88 Giá trị thích hợp cho a info b &info c d &addr 89 Giá trị thích hợp cho a info->ai_addr b pCur c info d pCur->ai_addr 90 Giá trị thích hợp cho a inet_addr(addr.sin_addr) b inet_ntoa(pCur) c inet_ntoa(pCur->sin_addr) d inet_ntoa(addr.sin_addr) 91 Đoạn chương trình sau minh họa việc xử lý lệnh HTTP server để phân tách URL mà client yêu cầu Server dừng việc nhận liệu gặp cặp ký tự “\r\n\r\n” Điền vào chỗ trống lệnh thích hợp SOCKET s; char command[1024]; char url[1024]; int len = 0, ret; char *pos; while (1) { ret = recv(s, , , MSG_WAITALL); if (ret c < d ... thích hợp cho a command b command+4 c command-4 d &command+4 95 Giá trị thích hợp cho a pos b pos-command c pos-command+4 d pos-command-4 ... MSG_WAITALL); if (ret