Đề thi giữa kỳ môn Lập trình mạng | Đại học Bách khoa Hà Nội

Tổng hợp Đề thi giữa kỳ môn Lập trình mạng của Đại học Bách khoa Hà Nội. Tài liệu giúp bạn tham khảo, ôn tập và đạt kết quả cao trong kỳ thi sắp tới. Mời bạn đọc đón xem!

PHẦN TRẢ LỜI TRẮC NGHIỆM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
PHẦN CÂU HỎI
1. Thư viện liên kết động của Windows Socket có tên là:
a. WinSock.DLL
b. WinSock2.DLL
c. WS2.DLL
d. WS2_32.DLL
2. 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à
a. Task Manager
b. ResourceMonitor
c. Wireshark
d. a và b.
3. Để có thể sử dụng thư viện Windows Socket, tệp tiêu đề cần khai báo là:
a. Winsock.h
b. Winsock2.h
c. Ws2_32.h
d. Ws2.h
4. Để 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à.
a. Winsock.lib
b. WS2_32.LIB
c. WS2_32.DLL
d. Winsock2.dll
5. 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à
a. TCP
b. IP
c. ICMP
d. UDP
6. 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
a. Ping
b. Nslookup
c. Netstat
d. Ipconfig
7. 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à
a. Wireshark
b. TCPView
c. Netcat
d. Tất cả
8. 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à
a. Netcat
b. Wireshark
c. Cain
d. Cả ba đều sai.
9. 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à.
a. Netcat
b. TCPDump
c. Netstat
d. Network Monitor
10. Dịch vụ phân giải tên miền chạy ở tầng nào trong các tầng sau đây
a. Application
b. Transport
c. Internetwork
d. Datalink
11. 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.
a. VLAN
b. MAC
c. NAT
d. Không đáp án nào đúng
12. 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.
a. DMZ
b. Virtual Server
c. Port Forwarding
d. Cả ba phương án trên.
13. 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
a. Application b. Provider
ĐỀ THI GIỮA KỲ MÔN LẬP TRÌNH MẠNG. 20132
Thời gian: 60 phút – Không được phép dùng tài liệu
Điền trực tiếp kết quả vào phần trả lời trắc nghiệm
217
c. Transport Protocol d. Không tầng nào đúng
14. 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
a. Application
b. Provider
c. Transport Protocol
d. Không tầng nào đúng.
15. Trình điều khiển cho một thiết bị mạng sẽ được chạy ở chế độ
a. User Mode
b. Kernel Mode
c. System Mode
d. Không phương án nào đúng.
16. 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 ?
a.
b. Không
c. Tùy từng trường hợp, nếu được tổ chức hợp lý.
17. Hàm nào sau đây thực hiện công việc khởi tạo Windows Socket
a. WSStartup
b. WinsockStartup
c. SocketStartup
d. WSAStartup
18. WSADATA là cấu trúc dùng để
a. Truyền thông tin về phiên bản WinSock mà ứng dụng muốn khởi tạo
b. Nhận thông tin về phiên bản WinSock có trên hệ thống.
c. Cả hai đáp án đều sai.
19. Để chuyển đổi giá trị cổng từ đầu nhỏ sang đầu to, lệnh nào sau đây sẽ được sử dụng
a. ntohl
b. ntohs
c. htonl
d. htons
20. Hàm nào sau đây sử dụng để giải phóng Windows Socket API.
a. WSACleanup
b. WSCleanup
c. Cleanup
d. Phương án khác:…
21. Để lấy mã lỗi của thao tác ngay trước đó. Hàm nào sau đây sẽ được sử dụng
a. GetLastError
b. WSAGetError
c. WSAGetLastError
d. WSALastError
22. Để 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
a. inet_ntos(serverAddr.sin_addr);
b. inet_ntoa(serverAddr.s_addr);
c. inet_ntoa(serverAddr.sin_addr);
d. inet_itos(serverAddr.sin_addr);
23. Lệnh nào sau đây dùng để tạo một socket TCP
a. socket(AF_INET,SOCK_STREAM,IPPROTO_
TCP).
b. socket(AF_INET,SOCK_DGRAM,IPROTO_TC
P).
c. Socket(AF_INET,SOCK_STREAM,IPPROTO_
UDP)
d. socket(AF_INET,SOCKSTREAM,IPPROTOTC
P).
24. Lệnh nào sau đây dùng để tạo một socket UDP
a. socket(AF_INET,SOCK_UDP,
IPPROTO_TCP).
b. socket(AF_INET,SOCK_DGRAM,IPROTO_TC
P).
c. Socket(AF_INET,SOCK_STREAM,IPPROTO_
UDP)
d. Không lệnh nào đúng.
25. Đ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í <A>, <B>, <C> các lệnh còn thiếu.
ret = connect(s, (sockaddr*)&serverAddr,sizeof(serverAddr));
if (ret ==SOCKET_ERROR) {
printf(“Loi ket noi: %d”, <A>);
<B>;
<C>;
};
a. <A>: GetLastError, <B>: closesocket (s), <C>: WSACleanup().
b. <A>: WSAGetLastError(), <B> close(s), <C>: Cleanup().
c. <A>: WSALastError(), <B>: closesocket(s), <C>: để trống.
d. Không phương án nào đúng.
26. Để chuyển đổi một xâu sang địa chỉ IP, lệnh nào sau đây là đúng
a. inet_ntoa(“192.168.1.1”);
b. inet_aton(“192.168.1.1”);
c. inet_addr(“192.168.1.1”);
d. inet_stoi(“192.168.1.1”);
27. 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à:
a. Thành công
b. Thất bại
c. Tùy trường hợp
28. Cấu trúc nào được sử dụng để khai báo địa chỉ socket internet:
a. sock_addr
b. sockaddr
c. sockaddr_in
d. sock_addr_in
29. 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:
a. Đầu to
b. Đầu nhỏ
c. Tùy trường hợp
30. Để 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
a. Winsock2.h
b. Ws2_32.h
c. Ws2ip.h
d. Ws2tcpip.h
Đoạn chương trình sau đọc nội dung một tệp tin và gửi đi qua kết nối c đã được thành lập.
Điền vào các vị trí <A> , <B>…các câu lệnh/giá trị thích hợp
SOCKET s;
FILE * fp;
char buff[1024];
int len;
fp = fopen("name.txt","rb");
while (<A>)
{
len = fread(<B>,1,1024,<C>);
if (len <=0)
break;
send(<D>,buff,<E>,0);
}
closesocket(s);
fclose(fp);
31. Giá trị thích hợp cho <A> là
a. fp
b. feof(fp)
c. !fp
d. !feof(fp)
32. Giá trị thích hợp cho <B> là
a. buff
b. fp
c. c
d. &buff
33. Giá trị thích hợp cho <C> là
a. buff
b. &buff
c. fp
d. &fp
34. Giá trị thích hợp cho <D> là
a. s
b. &s
c. fp
d. &fp
35. Giá trị thích hợp cho <E> là
a. 1024
b. len
c. &len
d. 0.
Đoạn chương sau nhận về một xâu và gửi trả xâu theo thứ tự ngược lại. Điền vào các vị trí <A>,<B>,<C>,<D>,<E>
các câu lệnh thích hợp:
SOCKET s;
char c, str[1024];
int i,len;
while (1)
{
len = recv(s,str,1024,0);
str[<A>] = 0;
for (i=0;i<len/2;i++)
{
c = <B>; str[i] = str[<C>]; str[len-i-1]=<D>;
};
send(<E>,str,len,0);
}
36. Câu lệnh thích hợp cho <A> là
a. len
b. i
c. 1024
d. 0
37. Câu lệnh thích hợp cho <B>
a. str[0]
b. str[len]
c. str[len-1]
d. str[i]
38. Câu lệnh thích hợp cho <C> là
a. len/2
b. len-1
c. len-i
d. len-i-1
39. Câu lệnh thích hợp cho <D> là
a. c
b. str[i]
c. str[0]
d. str[i-1]
40. Câu lệnh thích hợp cho <E> là
a. c
b. s
c. len
PHẦN TRẢ LỜI TRẮC NGHIỆM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
PHẦN CÂU HỎI
1. Thư viện liên kết động của Windows Socket có tên là:
a. WinSock.DLL
b. WinSock2.DLL
c. WS2.DLL
d. WS2_32.DLL
2. Để có thể sử dụng thư viện Windows Socket, tệp tiêu đề cần khai báo là:
a. Winsock.h
b. Winsock2.h
c. Ws2_32.h
d. Ws2.h
3. 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à
a. Wireshark
b. TCPView
c. Netcat
d. Tất cả
4. 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à
a. Task Manager
b. ResourceMonitor
c. Wireshark
d. a và b.
5. 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à
a. Netcat
b. Network Monitor
c. Cain
d. Cả ba đều sai.
6. 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à.
a. Netcat
b. TCPDump
c. Netstat
d. Network Monitor
7. 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à
a. TCP
b. IP
c. ICMP
d. UDP
8. Dịch vụ phân giải tên miền chạy ở tầng nào trong các tầng sau đây
a. Application
b. Transport
c. Internetwork
d. Datalink
9. 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.
a. VLAN
b. MAC
c. NAT
d. Không đáp án nào đúng
10. 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.
a. DMZ
b. Virtual Server
c. Port Forwarding
d. Cả ba phương án trên.
11. 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
a. Ping
b. Nslookup
c. Netstat
d. Ipconfig
12. 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
a. Application
b. Provider
c. Transport Protocol
d. Không tầng nào đúng
13. 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
a. Application b. Provider
ĐỀ THI GIỮA KỲ MÔN LẬP TRÌNH MẠNG. 20132
Thời gian: 60 phút – Không được phép dùng tài liệu
Điền trực tiếp kết quả vào phần trả lời trắc nghiệm
515
c. Transport Protocol d. Không tầng nào đúng.
14. Trình điều khiển cho một thiết bị mạng sẽ được chạy ở chế độ
a. User Mode
b. Kernel Mode
c. System Mode
d. Không phương án nào đúng.
15. 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 ?
a.
b. Không
c. Tùy từng trường hợp, nếu được tổ chức hợp lý.
16. Hàm nào sau đây thực hiện công việc khởi tạo Windows Socket
a. WSStartup
b. WinsockStartup
c. SocketStartup
d. WSAStartup
17. WSADATA là cấu trúc dùng để
a. Truyền thông tin về phiên bản WinSock mà ứng dụng muốn khởi tạo
b. Nhận thông tin về phiên bản WinSock có trên hệ thống.
c. Cả hai đáp án đều sai.
18. Hàm nào sau đây sử dụng để giải phóng Windows Socket API.
a. WSACleanup
b. WSCleanup
c. Cleanup
d. Phương án khác:…
19. Để lấy mã lỗi của thao tác ngay trước đó. Hàm nào sau đây sẽ được sử dụng
a. GetLastError
b. WSAGetError
c. WSAGetLastError
d. WSALastError
20. Đ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í <A>, <B>, <C> các lệnh còn thiếu.
ret = connect(s, (sockaddr*)&serverAddr,sizeof(serverAddr));
if (ret ==SOCKET_ERROR) {
printf(“Loi ket noi: %d”, <A>);
<B>;
<C>;
};
a. <A>: GetLastError, <B>: closesocket (s), <C>: WSACleanup().
b. <A>: WSAGetLastError(), <B> close(s), <C>: Cleanup().
c. <A>: WSALastError(), <B>: closesocket(s), <C>: để trống.
d. <A>: WSAGetLastError(), <B>: closesocket(s), <C>: WSACleanup().
21. 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à:
a. Thành công
b. Thất bại
c. Tùy trường hợp
22. Lệnh nào sau đây dùng để tạo một socket TCP
a. socket(AF_INET,SOCK_STREAM,IPPROTO_
TCP).
b. socket(AF_INET,SOCK_DGRAM,IPROTO_TC
P).
c. Socket(AF_INET,SOCK_STREAM,IPPROTO_
UDP)
d. socket(AF_INET,SOCKSTREAM,IPPROTOTC
P).
23. Lệnh nào sau đây dùng để tạo một socket UDP
a. socket(AF_INET,SOCK_UDP,
IPPROTO_TCP).
b. socket(AF_INET,SOCK_DGRAM,IPROTO_TC
P).
c. Socket(AF_INET,SOCK_STREAM,IPPROTO_
UDP)
d. socket(AF_INET, SOCK_DGRAM,
IPPROTO_UDP).
24. Cấu trúc nào được sử dụng để khai báo địa chỉ socket internet:
a. sock_addr
b. sockaddr
c. sockaddr_in
d. sock_addr_in
25. 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:
a. Đầu to
b. Đầu nhỏ
c. Tùy trường hợp
26. Để chuyển đổi một xâu sang địa chỉ IP, lệnh nào sau đây là đúng
a. inet_ntoa(“192.168.1.1”);
b. inet_aton(“192.168.1.1”);
c. inet_addr(“192.168.1.1”);
d. inet_stoi(“192.168.1.1”);
27. Để 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
a. inet_ntos(serverAddr.sin_addr);
b. inet_ntoa(serverAddr.s_addr);
c. inet_itos(serverAddr.sin_addr);
d. inet_ntoa(serverAddr.sin_addr);
28. Để chuyển đổi giá trị cổng từ đầu nhỏ sang đầu to, lệnh nào sau đây sẽ được sử dụng
a. ntohl
b. ntohs
c. htonl
d. htons
29. Trong lời gọi hàm recv(s,buff,1024,0), giá trị 1024 có nghĩa là:
a. Số byte muốn nhận
b. Số byte tối đa muốn nhận.
c. Kích thước bộ đệm.
d. Cả b và c đều đúng.
30. Để 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
a. Winsock2.h
b. Ws2_32.h
c. Ws2ip.h
d. Ws2tcpip.h
Đoạn chương sau nhận về một xâu và gửi trả xâu theo thứ tự ngược lại. Điền vào các vị trí <A>,<B>,<C>,<D>,<E>
các câu lệnh thích hợp:
SOCKET s;
char c, str[1024];
int i,len;
while (1)
{
len = recv(s,str,1024,0);
str[<A>] = 0;
for (i=0;i<len/2;i++)
{
c = <B>; str[i] = str[<C>]; str[len-i-1]=<D>;
};
send(<E>,str,len,0);
}
31. Câu lệnh thích hợp cho <A> là
a. len
b. i
c. 1024
d. 0
32. Câu lệnh thích hợp cho <B>
a. str[0]
b. str[len]
c. str[len-1]
d. str[i]
33. Câu lệnh thích hợp cho <C> là
a. len/2
b. len-1
c. len-i
d. len-i-1
34. Câu lệnh thích hợp cho <D> là
a. c
b. str[i]
c. str[0]
d. str[i-1]
35. Câu lệnh thích hợp cho <E> là
a. c
b. s
c. len
d. i
Đoạn chương trình sau đọc nội dung một tệp tin và gửi đi qua kết nối c đã được thành lập.
Điền vào các vị trí <A> , <B>…các câu lệnh/giá trị thích hợp
SOCKET s;
FILE * fp;
char buff[1024];
int len;
fp = fopen("name.txt","rb");
while (<A>)
{
len = fread(<B>,1,1024,<C>);
if (len <=0)
break;
send(<D>,buff,<E>,0);
};
closesocket(s);
fclose(fp);
36. Giá trị thích hợp cho <A> là
a. fp
b. feof(fp)
c. !fp
d. !feof(fp)
37. Giá trị thích hợp cho <B> là
a. buff
b. fp
c. c
d. &buff
38. Giá trị thích hợp cho <C> là
a. buff
b. &buff
c. fp
d. &fp
39. Giá trị thích hợp cho <D> là
a. s
b. &s
c. fp
d. &fp
40. Giá trị thích hợp cho <E> là
a. 1024
b. len
c. &len
d. 0.
1. Thư viện liên kết động của Windows Socket có tên là:
a. WinSock.DLL
b. WinSock2.DLL
c. WS2.DLL
d. WS2_32.DLL
2. Biên của thông điệp trong các giao thức hướng dòng
được bảo toàn hay không ?
a.
b. Không
c. Tùy từng trường hợp, nếu được tổ chức hợp lý.
3. 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
a. Application
b. Provider
c. Transport Protocol
d. Không tầng nào đúng
4. Công cụ dùng để bắt các gói tin gửi ra vào một giao
diện mạng của máy tính là
a. Netcat
b. Network Monitor
c. Cain
d. Không phương án nào đúng.
5. WSADATA là cấu trúc dùng để
a. Truyền thông tin về phiên bản WinSock mà ứng
dụng muốn khởi tạo
b. Nhận thông tin v phiên bản WinSock trên
hệ thống.
c. Cả hai đáp án đều sai.
6. Để có thể sử dụng thư viện Windows Socket, tệp tiêu đề
cần khai báo là:
a. Winsock.h
b. Winsock2.h
c. Ws2_32.h
d. Ws2.h
7. Trình điều khiển cho một thiết bị mạng sẽ được chạy
chế độ
a. User Mode
b. Kernel Mode
c. System Mode
d. Không phương án nào đúng.
8. 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à
a. TCP
b. IP
c. ICMP
d. UDP
9. Dịch vụ phân giải tên miền chạy tầng nào trong các
tầng sau đây
a. Application
b. Transport
c. Internetwork
d. Datalink
10. 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
a. Ping
b. Nslookup
c. Netstat
d. Ipconfig
11. 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.
a. VLAN
b. MAC
c. NAT
d. Không đáp án nào đúng
12. 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 nh từ Internet chủ động kết nối đến một máy chủ
trong mạng.
a. DMZ
b. Virtual Server
c. Port Forwarding
d. Cả ba phương án trên.
13. 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
a. Task Manager
b. Resource Monitor
c. Wireshark
d. Phương án a và b.
14. Để 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à.
a. Winsock.lib
b. WS2_32.LIB
c. WS2_32.DLL
d. Winsock2.dll
15. 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
a. Application
b. Provider
c. Transport Protocol
d. Không tầng nào đúng.
16. Công cụ đa năng, vừa thể đóng vai trò client, vừa
server, chạy trên giao thức TCP, UDP là.
a. Netcat
b. TCPDump
c. Netstat
d. Network Monitor
17. 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à
a. Wireshark
b. TCPView
c. Netcat
d. Tất cả các công cụ trên
18. Hàm nào sau đây thực hiện công việc khởi tạo Windows
Socket
a. WSStartup
b. WinsockStartup
c. SocketStartup
d. WSAStartup
ĐỀ 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
Phần 1. Trắc nghiệm
(6đ – tô kết quả vào phiếu trả lời trắc nghiệm)
132
19. Hàm nào sau đây sử dụng để giải phóng Windows Socket API.
a. WSACleanup
b. WSCleanup
c. Cleanup
d. Phương án khác:…
20. Lệnh nào sau đây dùng để tạo một socket TCP
a. socket(AF_INET,SOCK_STREAM,IPPROTO_TCP).
b. socket(AF_INET,SOCK_DGRAM,IPROTO_TCP).
c. Socket(AF_INET,SOCK_STREAM,IPPROTO_UDP)
d. socket(AF_INET,SOCKSTREAM,IPPROTOTCP).
21. Để chuyển đổi giá trị cổng từ đầu nhỏ sang đầu to, lệnh
nào sau đây sẽ được sử dụng
a. ntohl
b. ntohs
c. htonl
d. htons
22. Cấu trúc nào được sử dụng để khai báo địa chỉ socket
internet:
a. sock_addr
b. sockaddr
c. sockaddr_in
d. sock_addr_in
23. 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:
a. Đầu to
b. Đầu nhỏ
c. Tùy trường hợp
24. Để lấy lỗi của thao tác ngay trước đó. m nào sau
đây sẽ được sử dụng
a. GetLastError
b. WSAGetError
c. WSAGetLastError
d. WSALastError
25. Để chuyển đổi một xâu sang địa chỉ IP, lệnh nào sau đây
là đúng
a. inet_ntoa(“192.168.1.1”);
b. inet_aton(“192.168.1.1”);
c. inet_addr(“192.168.1.1”);
d. inet_stoi(“192.168.1.1”);
26. Trong Windows Socket, với các hàm không tiền tố
WSA thì mã lỗi trả về là 0 có nghĩa là:
a. Thành công
b. Thất bại
c. Tùy trường hợp
27. Để 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
a. inet_ntos(serverAddr.sin_addr);
b. inet_ntoa(serverAddr.s_addr);
c. inet_itos(serverAddr.sin_addr);
d. inet_ntoa(serverAddr.sin_addr);
28. Đ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í <A>, <B>, <C> các lệnh còn thiếu.
ret = connect(s,
(sockaddr*)&serverAddr,sizeof(serverAddr));
if (ret ==SOCKET_ERROR) {
printf(“Loi ket noi: %d”, <A>);
<B>;
<C>;
};
a. <A>: GetLastError, <B>: closesocket (s), <C>:
WSACleanup().
b. <A>: WSAGetLastError(), <B> close(s), <C>:
Cleanup().
c. <A>: WSALastError(), <B>: closesocket(s),
<C>: để trống.
d. Không phương án nào đúng.
29. Lệnh nào sau đây dùng để tạo một socket UDP
a. socket(AF_INET,SOCK_UDP, IPPROTO_TCP).
b. socket(AF_INET,SOCK_DGRAM,IPROTO_TCP).
c. Socket(AF_INET,SOCK_STREAM,IPPROTO_UDP)
d. Không lệnh nào đúng.
30. Để 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
a. Winsock2.h
b. Ws2_32.h
c. Ws2ip.h
d. Ws2tcpip.h
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 select 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 <TenFile>\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<ThongBaoLoi>\n\n”.
b. Nếu server báo thành công thì dữ liệu gửi trả dạng “OK\n<FileSize>\n<NoiDungFile>\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.
ĐỀ THI GIỮA KÌ MÔN LẬP TRÌNH MẠNG (IT 4060) - Ngày thi: 18/10/2011
Thời gian: 15h -> 16h30
Địa điểm: TC-412
Không sử dụng tài liệu
Đề 0.Viết chương trình FileServer sử dụng mô hình blocking làm nhiệm vụ sau:
a. Đợi kết nối và xử lý lệnh từ client. Các lệnh có dạng “GET <TenFile>\n”.
b. Thực hiện đọc từ thư mục hiện tại tệp tin <TenFile> gửi trả client theo định dạng
“OK\n<Kichthuocfile>\n\n<Noidungfile>”
c. Nếu file không tồn tại thì gửi trả client xâu “FAILED\nFile not found\n\n”.
d. Chương trình có thể đáp ứng được nhiều yêu cầu từ nhiều client đồng thời.
Đề 1.Viết chương trình FileClient sử dụng mô hình blocking làm nhiệm vụ sau:
a. Kết nối đến server có địa chỉ/tên miền được nhập từ bàn phím.
b. 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 <TenFile>\n”.
c. Xử lý kết quả từ server
i. Nếu server báo lỗi, thì dữ liệu gửi trả có dạng “FAILED\n<ThongBaoLoi>\n\n”.
ii. Nếu server báo thành công thì dữ liệu gửi trả có dạng “OK\n<FileSize>\n<NoiDungFile>\n\n”. Phân ch
kết quả từ server và ghi nội dung file nhận được ra đĩa.
d. Chương trình có thể tải nhiều file cùng một lúc, từ nhiều server.
Đề 2.Viết chương trình FileServer sử dụng mô hình select làm nhiệm vụ sau:
a. Đợi kết nối và xử lý lệnh từ client. Các lệnh có dạng “GET <TenFile>\n”.
b. Thực hiện đọc từ thư mục hiện tại tệp tin <TenFile> gửi trả client theo định dạng
“OK\n<Kichthuocfile>\n\n<Noidungfile>”
c. Nếu file không tồn tại thì gửi trả client xâu “FAILED\nFile not found\n\n”.
d. Chương trình có thể đáp ứng được nhiều yêu cầu từ nhiều client đồng thời.
Đề 3.Viết chương trình FileClient sử dụng mô hình select làm nhiệm vụ sau:
a. Kết nối đến server có địa chỉ/tên miền được nhập từ bàn phím.
b. 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 <TenFile>\n”.
c. Xử lý kết quả từ server
i. Nếu server báo lỗi, thì dữ liệu gửi trả có dạng “FAILED\n<ThongBaoLoi>\n\n”.
ii. Nếu server báo thành công thì dữ liệu gửi trả có dạng “OK\n<FileSize>\n<NoiDungFile>\n\n”. Phân ch
kết quả từ server và ghi nội dung file nhận được ra đĩa.
d. Chương trình có thể tải nhiều file cùng một lúc, từ nhiều server.
Đề 4.Viết chương trình FileServer sử dụng mô hình WSAEventSelect làm nhiệm vụ sau:
e. Đợi kết nối và xử lý lệnh từ client. Các lệnh có dạng “GET <TenFile>\n”.
f. Thực hiện đọc từ thư mục hiện tại tệp tin <TenFile> gửi tr client theo định dạng
“OK\n<Kichthuocfile>\n\n<Noidungfile>”
g. Nếu file không tồn tại thì gửi trả client xâu “FAILED\nFile not found\n\n”.
h. Chương trình có thể đáp ứng được nhiều yêu cầu từ nhiều client đồng thời.
Đề 5.Viết chương trình FileClient sử dụng mô hình WSAEventSelect làm nhiệm vụ sau:
e. Kết nối đến server có địa chỉ/tên miền được nhập từ bàn phím.
f. 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 <TenFile>\n”.
g. Xử lý kết quả từ server
iii. Nếu server báo lỗi, thì dữ liệu gửi trả có dạng “FAILED\n<ThongBaoLoi>\n\n”.
iv. Nếu server báo thành công thì dữ liệu gửi trả dạng “OK\n<FileSize>\n<NoiDungFile>\n\n”. Phân tích
kết quả từ server và ghi nội dung file nhận được ra đĩa.
h. Chương trình có thể tải nhiều file cùng một lúc, từ nhiều server.
Lưu ý: Đề thi của sinh viên = phần dư (số thứ tự / 6). Ví dụ: STT 15 => Làm đề 3
1. Thư viện liên kết động của Windows Socket có tên là:
a. WinSock.DLL
b. WinSock2.DLL
c. WS2.DLL
d. WS2_32.DLL
2. 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
a. Ping
b. Nslookup
c. Netstat
d. Ipconfig
3. Biên của thông điệp trong các giao thức hướng dòng
được bảo toàn hay không ?
a.
b. Không
c. Tùy từng trường hợp, nếu được tổ chức hợp lý.
4. Công cụ dùng để theo dõi tài nguyên sdụng của máy
tính trên hệ điều hành Windows
a. Task Manager
b. Resource Monitor
c. Wireshark
d. Phương án a và b.
5. 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
a. Application
b. Provider
c. Transport Protocol
d. Không tầng nào đúng
6. Công cụ dùng để bắt các gói tin gửi ra vào một giao
diện mạng của máy tính là
a. Netcat
b. Network Monitor
c. Cain
d. Không phương án nào đúng.
7. Công cụ đa năng, vừa thể đóng vai trò client, vừa
server, chạy trên giao thức TCP, UDP là.
a. Netcat
b. TCPDump
c. Netstat
d. Network Monitor
8. WSADATA là cấu trúc dùng để
a. Truyền thông tin về phiên bản WinSock mà ứng
dụng muốn khởi tạo
b. Nhận thông tin v phiên bản WinSock trên
hệ thống.
c. Cả hai đáp án đều sai.
9. Để thể sử dụng thư viện Windows Socket, tệp tiêu đề
cần khai báo là:
a. Winsock.h
b. Winsock2.h
c. Ws2_32.h
d. Ws2.h
10. 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à
a. TCP
b. IP
c. ICMP
d. UDP
11. Dịch vụ phân giải tên miền chạy tầng nào trong các
tầng sau đây
a. Application
b. Transport
c. Internetwork
d. Datalink
12. 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.
a. VLAN
b. MAC
c. NAT
d. Không đáp án nào đúng
13. 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 nh từ Internet chủ động kết nối đến một máy chủ
trong mạng.
a. DMZ
b. Virtual Server
c. Port Forwarding
d. Cả ba phương án trên.
14. Để 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à.
a. Winsock.lib
b. WS2_32.LIB
c. WS2_32.DLL
d. Winsock2.dll
15. 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
a. Application
b. Provider
c. Transport Protocol
d. Không tầng nào đúng.
16. 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à
a. Wireshark
b. TCPView
c. Netcat
d. Tất cả các công cụ trên
17. Trình điều khiển cho một thiết bị mạng sẽ được chạy
chế độ
a. User Mode
b. Kernel Mode
c. System Mode
d. Không phương án nào đúng.
18. Hàm nào sau đây thực hiện công việc khởi tạo Windows
Socket
a. WSStartup
b. WinsockStartup
c. SocketStartup
d. WSAStartup
ĐỀ 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
Phần 1. Trắc nghiệm
(6đ – tô kết quả vào phiếu trả lời trắc nghiệm)
247
19. Hàm nào sau đây sử dụng để giải phóng Windows Socket API.
a. WSACleanup
b. WSCleanup
c. Cleanup
d. Phương án khác:
20. Lệnh nào sau đây dùng để tạo một socket TCP
a. socket(AF_INET,SOCK_STREAM,IPPROTO_TCP).
b. socket(AF_INET,SOCK_DGRAM,IPROTO_TCP).
c. Socket(AF_INET,SOCK_STREAM,IPPROTO_UDP)
d. socket(AF_INET,SOCKSTREAM,IPPROTOTCP).
21. Cấu trúc nào được sử dụng để khai báo địa chỉ socket
internet:
a. sock_addr
b. sockaddr
c. sockaddr_in
d. sock_addr_in
22. 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:
a. Đầu to
b. Đầu nhỏ
c. Tùy trường hợp
23. Để lấy lỗi của thao tác ngay trước đó. m nào sau
đây sẽ được sử dụng
a. GetLastError
b. WSAGetError
c. WSAGetLastError
d. WSALastError
24. Để chuyển đổi một xâu sang địa chỉ IP, lệnh nào sau đây
là đúng
a. inet_ntoa(“192.168.1.1”);
b. inet_aton(“192.168.1.1”);
c. inet_addr(“192.168.1.1”);
d. inet_stoi(“192.168.1.1”);
25. Trong Windows Socket, với các hàm không tiền tố
WSA thì mã lỗi trả về là 0 có nghĩa là:
a. Thành công
b. Thất bại
c. Tùy trường hợp
26. Đ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í <A>, <B>, <C> các lệnh còn thiếu.
ret = connect(s,
(sockaddr*)&serverAddr,sizeof(serverAddr));
if (ret ==SOCKET_ERROR) {
printf(“Loi ket noi: %d”, <A>);
<B>;
<C>;
};
a. <A>: GetLastError, <B>: closesocket (s), <C>:
WSACleanup().
b. <A>: WSAGetLastError(), <B> close(s), <C>:
Cleanup().
c. <A>: WSALastError(), <B>: closesocket(s),
<C>: để trống.
d. Không phương án nào đúng.
27. Để 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
a. inet_ntos(serverAddr.sin_addr);
b. inet_ntoa(serverAddr.s_addr);
c. inet_itos(serverAddr.sin_addr);
d. inet_ntoa(serverAddr.sin_addr);
28. Lệnh nào sau đây dùng để tạo một socket UDP
a. socket(AF_INET,SOCK_UDP, IPPROTO_TCP).
b. socket(AF_INET,SOCK_DGRAM,IPROTO_TCP).
c. Socket(AF_INET,SOCK_STREAM,IPPROTO_UDP)
d. Không lệnh nào đúng.
29. Để chuyển đổi giá trị cổng từ đầu nhỏ sang đầu to, lệnh
nào sau đây sẽ được sử dụng
a. ntohl
b. ntohs
c. htonl
d. htons
30. Để 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
a. Winsock2.h
b. Ws2_32.h
c. Ws2ip.h
d. 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:
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 <TenFile>\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<ThongBaoLoi>\n\n”.
b. Nếu server báo thành công thì dữ liệu gửi trả dạng “OK\n<FileSize>\n<NoiDungFile>\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.
| 1/13

Preview text:

ĐỀ THI GIỮA KỲ MÔN LẬP TRÌNH MẠNG. 20132 217
Thời gian: 60 phút – Không được phép dùng tài liệu
Điền trực tiếp kết quả vào phần trả lời trắc nghiệm
PHẦN TRẢ LỜI TRẮC NGHIỆM 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 PHẦN CÂU HỎI
1. Thư viện liên kết động của Windows Socket có tên là: a. WinSock.DLL c. WS2.DLL b. WinSock2.DLL d. WS2_32.DLL
2. 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à a. Task Manager c. Wireshark b. ResourceMonitor d. a và b.
3. Để có thể 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
4. Để 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à. a. Winsock.lib c. WS2_32.DLL b. WS2_32.LIB d. Winsock2.dll
5. 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à a. TCP c. ICMP b. IP d. UDP
6. 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 a. Ping c. Netstat b. Nslookup d. Ipconfig
7. 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à a. Wireshark c. Netcat b. TCPView d. Tất cả
8. 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à a. Netcat c. Cain b. Wireshark d. Cả ba đều sai.
9. 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à. a. Netcat c. Netstat b. TCPDump d. Network Monitor
10. Dịch vụ phân giải tên miền chạy ở tầng nào trong các tầng sau đây a. Application c. Internetwork b. Transport d. Datalink
11. 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. a. VLAN c. NAT b. MAC
d. Không đáp án nào đúng
12. 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. a. DMZ c. Port Forwarding b. Virtual Server d. Cả ba phương án trên.
13. 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 a. Application b. Provider c. Transport Protocol d. Không tầng nào đúng
14. 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 a. Application c. Transport Protocol b. Provider d. Không tầng nào đúng.
15. Trình điều khiển cho một thiết bị mạng sẽ được chạy ở chế độ a. User Mode c. System Mode b. Kernel Mode
d. Không phương án nào đúng.
16. 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 ? a. Có b. Không
c. Tùy từng trường hợp, nếu được tổ chức hợp lý.
17. Hàm nào sau đây thực hiện công việc khởi tạo Windows Socket a. WSStartup c. SocketStartup b. WinsockStartup d. WSAStartup
18. WSADATA là cấu trúc dùng để
a. Truyền thông tin về phiên bản WinSock mà ứng dụng muốn khởi tạo
b. Nhận thông tin về phiên bản WinSock có trên hệ thống.
c. Cả hai đáp án đều sai.
19. Để chuyển đổi giá trị cổng từ đầu nhỏ sang đầu to, lệnh nào sau đây sẽ được sử dụng a. ntohl c. htonl b. ntohs d. htons
20. Hàm nào sau đây sử dụng để giải phóng Windows Socket API. a. WSACleanup c. Cleanup b. WSCleanup d. Phương án khác:…
21. Để lấy mã lỗi của thao tác ngay trước đó. Hàm nào sau đây sẽ được sử dụng a. GetLastError c. WSAGetLastError b. WSAGetError d. WSALastError
22. Để 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
a. inet_ntos(serverAddr.sin_addr);
c. inet_ntoa(serverAddr.sin_addr);
b. inet_ntoa(serverAddr.s_addr);
d. inet_itos(serverAddr.sin_addr);
23. Lệnh nào sau đây dùng để tạo một socket TCP
a. socket(AF_INET,SOCK_STREAM,IPPROTO_
c. Socket(AF_INET,SOCK_STREAM,IPPROTO_ TCP). UDP)
b. socket(AF_INET,SOCK_DGRAM,IPROTO_TC
d. socket(AF_INET,SOCKSTREAM,IPPROTOTC P). P).
24. Lệnh nào sau đây dùng để tạo một socket UDP a. socket(AF_INET,SOCK_UDP,
c. Socket(AF_INET,SOCK_STREAM,IPPROTO_ IPPROTO_TCP). UDP)
b. socket(AF_INET,SOCK_DGRAM,IPROTO_TC d. Không lệnh nào đúng. P).
25. Đ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”, ); ; ; };
a. : GetLastError, : closesocket (s), : WSACleanup().
b. : WSAGetLastError(), close(s), : Cleanup().
c. : WSALastError(), : closesocket(s), : để trống.
d. Không phương án nào đúng.
26. Để chuyển đổi một xâu sang địa chỉ IP, lệnh nào sau đây là đúng
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”);
27. 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à: a. Thành công b. Thất bại c. Tùy trường hợp
28. Cấu trúc nào được sử dụng để khai báo địa chỉ socket internet: a. sock_addr c. sockaddr_in b. sockaddr d. sock_addr_in
29. 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: a. Đầu to c. Tùy trường hợp b. Đầu nhỏ
30. Để 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 a. Winsock2.h c. Ws2ip.h b. Ws2_32.h d. Ws2tcpip.h
Đoạn chương trình sau đọc nội dung một tệp tin và gửi đi qua kết nối c đã được thành lập.
Điền vào các vị trí , …các câu lệnh/giá trị thích hợp SOCKET s; FILE * fp; char buff[1024]; int len; fp = fopen("name.txt","rb"); while () { len = fread(,1,1024,); if (len <=0) break; send(,buff,,0); } closesocket(s); fclose(fp);
31. Giá trị thích hợp cho là a. fp c. !fp b. feof(fp) d. !feof(fp)
32. Giá trị thích hợp cho là a. buff c. c b. fp d. &buff
33. Giá trị thích hợp cho là a. buff c. fp b. &buff d. &fp
34. Giá trị thích hợp cho là a. s c. fp b. &s d. &fp
35. Giá trị thích hợp cho là a. 1024 c. &len b. len d. 0.
Đoạn chương sau nhận về một xâu và gửi trả xâu theo thứ tự ngược lại. Điền vào các vị trí ,,,,
các câu lệnh thích hợp: SOCKET s; char c, str[1024]; int i,len; while (1) { len = recv(s,str,1024,0); str[] = 0; for (i=0;i { c = ; str[i] = str[]; str[len-i-1]=; }; send(,str,len,0); }
36. Câu lệnh thích hợp cho là a. len c. 1024 b. i d. 0
37. Câu lệnh thích hợp cho là a. str[0] c. str[len-1] b. str[len] d. str[i]
38. Câu lệnh thích hợp cho là a. len/2 c. len-i b. len-1 d. len-i-1
39. Câu lệnh thích hợp cho là a. c c. str[0] b. str[i] d. str[i-1]
40. Câu lệnh thích hợp cho là a. c c. len b. s
ĐỀ THI GIỮA KỲ MÔN LẬP TRÌNH MẠNG. 20132 515
Thời gian: 60 phút – Không được phép dùng tài liệu
Điền trực tiếp kết quả vào phần trả lời trắc nghiệm
PHẦN TRẢ LỜI TRẮC NGHIỆM 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 PHẦN CÂU HỎI
1. Thư viện liên kết động của Windows Socket có tên là: a. WinSock.DLL c. WS2.DLL b. WinSock2.DLL d. WS2_32.DLL
2. Để có thể 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
3. 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à a. Wireshark c. Netcat b. TCPView d. Tất cả
4. 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à a. Task Manager c. Wireshark b. ResourceMonitor d. a và b.
5. 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à a. Netcat c. Cain b. Network Monitor d. Cả ba đều sai.
6. 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à. a. Netcat c. Netstat b. TCPDump d. Network Monitor
7. 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à a. TCP c. ICMP b. IP d. UDP
8. Dịch vụ phân giải tên miền chạy ở tầng nào trong các tầng sau đây a. Application c. Internetwork b. Transport d. Datalink
9. 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. a. VLAN c. NAT b. MAC
d. Không đáp án nào đúng
10. 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. a. DMZ c. Port Forwarding b. Virtual Server d. Cả ba phương án trên.
11. 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 a. Ping c. Netstat b. Nslookup d. Ipconfig
12. 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 a. Application c. Transport Protocol b. Provider d. Không tầng nào đúng
13. 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 a. Application b. Provider c. Transport Protocol d. Không tầng nào đúng.
14. Trình điều khiển cho một thiết bị mạng sẽ được chạy ở chế độ a. User Mode c. System Mode b. Kernel Mode
d. Không phương án nào đúng.
15. 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 ? a. Có b. Không
c. Tùy từng trường hợp, nếu được tổ chức hợp lý.
16. Hàm nào sau đây thực hiện công việc khởi tạo Windows Socket a. WSStartup c. SocketStartup b. WinsockStartup d. WSAStartup
17. WSADATA là cấu trúc dùng để
a. Truyền thông tin về phiên bản WinSock mà ứng dụng muốn khởi tạo
b. Nhận thông tin về phiên bản WinSock có trên hệ thống.
c. Cả hai đáp án đều sai.
18. Hàm nào sau đây sử dụng để giải phóng Windows Socket API. a. WSACleanup c. Cleanup b. WSCleanup d. Phương án khác:…
19. Để lấy mã lỗi của thao tác ngay trước đó. Hàm nào sau đây sẽ được sử dụng a. GetLastError c. WSAGetLastError b. WSAGetError d. WSALastError
20. Đ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”, ); ; ; };
a. : GetLastError, : closesocket (s), : WSACleanup().
b. : WSAGetLastError(), close(s), : Cleanup().
c. : WSALastError(), : closesocket(s), : để trống.
d. : WSAGetLastError(), : closesocket(s), : WSACleanup().
21. 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à: a. Thành công b. Thất bại c. Tùy trường hợp
22. Lệnh nào sau đây dùng để tạo một socket TCP
a. socket(AF_INET,SOCK_STREAM,IPPROTO_
c. Socket(AF_INET,SOCK_STREAM,IPPROTO_ TCP). UDP)
b. socket(AF_INET,SOCK_DGRAM,IPROTO_TC
d. socket(AF_INET,SOCKSTREAM,IPPROTOTC P). P).
23. Lệnh nào sau đây dùng để tạo một socket UDP a. socket(AF_INET,SOCK_UDP,
c. Socket(AF_INET,SOCK_STREAM,IPPROTO_ IPPROTO_TCP). UDP)
b. socket(AF_INET,SOCK_DGRAM,IPROTO_TC
d. socket(AF_INET, SOCK_DGRAM, P). IPPROTO_UDP).
24. Cấu trúc nào được sử dụng để khai báo địa chỉ socket internet: a. sock_addr c. sockaddr_in b. sockaddr d. sock_addr_in
25. 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: a. Đầu to c. Tùy trường hợp b. Đầu nhỏ
26. Để chuyển đổi một xâu sang địa chỉ IP, lệnh nào sau đây là đúng
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”);
27. Để 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
a. inet_ntos(serverAddr.sin_addr);
c. inet_itos(serverAddr.sin_addr);
b. inet_ntoa(serverAddr.s_addr);
d. inet_ntoa(serverAddr.sin_addr);
28. Để chuyển đổi giá trị cổng từ đầu nhỏ sang đầu to, lệnh nào sau đây sẽ được sử dụng a. ntohl c. htonl b. ntohs d. htons
29. Trong lời gọi hàm recv(s,buff,1024,0), giá trị 1024 có nghĩa là: a. Số byte muốn nhận
c. Kích thước bộ đệm.
b. Số byte tối đa muốn nhận.
d. Cả b và c đều đúng.
30. Để 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 a. Winsock2.h c. Ws2ip.h b. Ws2_32.h d. Ws2tcpip.h
Đoạn chương sau nhận về một xâu và gửi trả xâu theo thứ tự ngược lại. Điền vào các vị trí ,,,,
các câu lệnh thích hợp: SOCKET s; char c, str[1024]; int i,len; while (1) { len = recv(s,str,1024,0); str[] = 0; for (i=0;i { c = ; str[i] = str[]; str[len-i-1]=; }; send(,str,len,0); }
31. Câu lệnh thích hợp cho là a. len c. 1024 b. i d. 0
32. Câu lệnh thích hợp cho là a. str[0] c. str[len-1] b. str[len] d. str[i]
33. Câu lệnh thích hợp cho là a. len/2 c. len-i b. len-1 d. len-i-1
34. Câu lệnh thích hợp cho là a. c c. str[0] b. str[i] d. str[i-1]
35. Câu lệnh thích hợp cho là a. c c. len b. s d. i
Đoạn chương trình sau đọc nội dung một tệp tin và gửi đi qua kết nối c đã được thành lập.
Điền vào các vị trí , …các câu lệnh/giá trị thích hợp SOCKET s; FILE * fp; char buff[1024]; int len; fp = fopen("name.txt","rb"); while () { len = fread(,1,1024,); if (len <=0) break; send(,buff,,0); }; closesocket(s); fclose(fp);
36. Giá trị thích hợp cho là a. fp c. !fp b. feof(fp) d. !feof(fp)
37. Giá trị thích hợp cho là a. buff c. c b. fp d. &buff
38. Giá trị thích hợp cho là a. buff c. fp b. &buff d. &fp
39. Giá trị thích hợp cho là a. s c. fp b. &s d. &fp
40. Giá trị thích hợp cho là a. 1024 c. &len b. len d. 0.
ĐỀ THI GIỮA KỲ MÔN LẬP TRÌNH MẠNG 132
Thời gian: 90 phút – Không được phép dùng tài liệu Phần 1. Trắc nghiệm
(6đ – tô kết quả vào phiếu trả lời trắc nghiệm)
1. Thư viện liên kết động của Windows Socket có tên là: a. Ping a. WinSock.DLL b. Nslookup b. WinSock2.DLL c. Netstat c. WS2.DLL d. Ipconfig d. WS2_32.DLL
11. Giao thức nào được sử dụng để chia sẻ một địa chỉ toàn
2. Biên của thông điệp trong các giao thức hướng dòng có
cục cho một nhóm các máy tính trong mạng LAN.
được bảo toàn hay không ? a. VLAN a. Có b. MAC b. Không c. NAT
c. Tùy từng trường hợp, nếu được tổ chức hợp lý.
d. Không đáp án nào đúng
3. Nếu cần phát triển thêm trình điều khiển cho một loại
12. Trong một mạng máy tính được chia sẻ chung một địa
thiết bị mới. Ứng dụng sẽ phải viết ở tầng nào của
chỉ IP toàn cục. Thiết lập nào sau đây sẽ cho phép một Windows Socket
máy tính từ Internet chủ động kết nối đến một máy chủ a. Application trong mạng. b. Provider a. DMZ c. Transport Protocol b. Virtual Server d. Không tầng nào đúng c. Port Forwarding
4. Công cụ dùng để bắt các gói tin gửi ra và vào một giao
d. Cả ba phương án trên.
diện mạng của máy tính là
13. Công cụ dùng để theo dõi tài nguyên sử dụng của máy a. Netcat
tính trên hệ điều hành Windows là b. Network Monitor a. Task Manager c. Cain b. Resource Monitor
d. Không phương án nào đúng. c. Wireshark
5. WSADATA là cấu trúc dùng để d. Phương án a và b.
a. Truyền thông tin về phiên bản WinSock mà ứng
14. Để có thể sử dụng dụng thư viện Windows Socket, tệp dụng muốn khởi tạo
thư viện cần khai báo cho quá trình liên kết là.
b. Nhận thông tin về phiên bản WinSock có trên a. Winsock.lib hệ thống. b. WS2_32.LIB
c. Cả hai đáp án đều sai. c. WS2_32.DLL
6. Để có thể sử dụng thư viện Windows Socket, tệp tiêu đề d. Winsock2.dll cần khai báo là:
15. Nếu cần phải thiết kế một giao thức mới, ứng dụng sẽ a. Winsock.h
phải tích hợp vào tầng nào của Windows Socket API b. Winsock2.h a. Application c. Ws2_32.h b. Provider d. Ws2.h c. Transport Protocol
7. Trình điều khiển cho một thiết bị mạng sẽ được chạy ở d. Không tầng nào đúng. chế độ
16. Công cụ đa năng, vừa có thể đóng vai trò client, vừa a. User Mode
server, chạy trên giao thức TCP, UDP là. b. Kernel Mode a. Netcat c. System Mode b. TCPDump
d. Không phương án nào đúng. c. Netstat
8. Nếu cần phải viết một ứng dụng cần tính đáp ứng nhanh d. Network Monitor
và chấp nhận sai sót. Giao thức lựa chọn sẽ là
17. Công cụ chuẩn đoán mạng dùng để hiển thị các kết nối a. TCP
hiện có trên máy tính là b. IP a. Wireshark c. ICMP b. TCPView d. UDP c. Netcat
9. Dịch vụ phân giải tên miền chạy ở tầng nào trong các
d. Tất cả các công cụ trên tầng sau đây
18. Hàm nào sau đây thực hiện công việc khởi tạo Windows a. Application Socket b. Transport a. WSStartup c. Internetwork b. WinsockStartup d. Datalink c. SocketStartup
10. Công cụ nào sử dụng để kiểm tra hoạt động của một máy d. WSAStartup
chủ phân giải tên miền
19. Hàm nào sau đây sử dụng để giải phóng Windows Socket API. a. WSACleanup b. WSCleanup c. Cleanup d. Phương án khác:…
20. Lệnh nào sau đây dùng để tạo một socket TCP b. Thất bại
a. socket(AF_INET,SOCK_STREAM,IPPROTO_TCP). c. Tùy trường hợp
b. socket(AF_INET,SOCK_DGRAM,IPROTO_TCP).
27. Để chuyển đổi một địa chỉ IP lưu trong biến serverAddr
c. Socket(AF_INET,SOCK_STREAM,IPPROTO_UDP)
lưu trữ địa chỉ socket sang dạng xâu ký tự, lệnh nào sau
d. socket(AF_INET,SOCKSTREAM,IPPROTOTCP). đây là đúng
21. Để chuyển đổi giá trị cổng từ đầu nhỏ sang đầu to, lệnh
a. inet_ntos(serverAddr.sin_addr);
nào sau đây sẽ được sử dụng
b. inet_ntoa(serverAddr.s_addr); a. ntohl
c. inet_itos(serverAddr.sin_addr); b. ntohs
d. inet_ntoa(serverAddr.sin_addr); c. htonl
28. Đoạn chương trình sau thực hiện kết nối đến một d. htons
server, điền vào vị trí , , các lệnh còn thiếu.
22. Cấu trúc nào được sử dụng để khai báo địa chỉ socket ret = connect(s, internet:
(sockaddr*)&serverAddr,sizeof(serverAddr)); a. sock_addr if (ret ==SOCKET_ERROR) { b. sockaddr
printf(“Loi ket noi: %d”, ); c. sockaddr_in ; d. sock_addr_in ;
23. 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:
a. : GetLastError, : closesocket (s), : a. Đầu to WSACleanup(). b. Đầu nhỏ
b. : WSAGetLastError(), close(s), : c. Tùy trường hợp Cleanup().
24. Để lấy mã lỗi của thao tác ngay trước đó. Hàm nào sau
c. : WSALastError(), : closesocket(s),
đây sẽ được sử dụng : để trống. a. GetLastError
d. Không phương án nào đúng. b. WSAGetError
29. Lệnh nào sau đây dùng để tạo một socket UDP c. WSAGetLastError
a. socket(AF_INET,SOCK_UDP, IPPROTO_TCP). d. WSALastError
b. socket(AF_INET,SOCK_DGRAM,IPROTO_TCP).
25. Để chuyển đổi một xâu sang địa chỉ IP, lệnh nào sau đây
c. Socket(AF_INET,SOCK_STREAM,IPPROTO_UDP) là đúng d. Không lệnh nào đúng.
a. inet_ntoa(“192.168.1.1”);
30. Để thực hiện phân giải tên miền bằng WinSock, cần bổ
b. inet_aton(“192.168.1.1”); sung tệp tiêu đề nào
c. inet_addr(“192.168.1.1”); a. Winsock2.h
d. inet_stoi(“192.168.1.1”); b. Ws2_32.h
26. Trong Windows Socket, với các hàm không có tiền tố c. Ws2ip.h
WSA thì mã lỗi trả về là 0 có nghĩa là: d. Ws2tcpip.h a. Thành công 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 select 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.
ĐỀ THI GIỮA KÌ MÔN LẬP TRÌNH MẠNG (IT 4060) - Ngày thi: 18/10/2011 Thời gian: 15h -> 16h30 Địa điểm: TC-412
Không sử dụng tài liệu
Đề 0.Viết chương trình FileServer sử dụng mô hình blocking làm nhiệm vụ sau:
a. Đợi kết nối và xử lý lệnh từ client. Các lệnh có dạng “GET \n”.
b. Thực hiện đọc từ thư mục hiện tại tệp tin và gửi trả client theo định dạng “OK\n\n\n”
c. Nếu file không tồn tại thì gửi trả client xâu “FAILED\nFile not found\n\n”.
d. Chương trình có thể đáp ứng được nhiều yêu cầu từ nhiều client đồng thời.
Đề 1.Viết chương trình FileClient sử dụng mô hình blocking làm nhiệm vụ sau:
a. Kết nối đến server có địa chỉ/tên miền được nhập từ bàn phím.
b. 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”.
c. Xử lý kết quả từ server
i. Nếu server báo lỗi, thì dữ liệu gửi trả có dạng “FAILED\n\n\n”.
ii. 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.
d. Chương trình có thể tải nhiều file cùng một lúc, từ nhiều server.
Đề 2.Viết chương trình FileServer sử dụng mô hình select làm nhiệm vụ sau:
a. Đợi kết nối và xử lý lệnh từ client. Các lệnh có dạng “GET \n”.
b. Thực hiện đọc từ thư mục hiện tại tệp tin và gửi trả client theo định dạng “OK\n\n\n”
c. Nếu file không tồn tại thì gửi trả client xâu “FAILED\nFile not found\n\n”.
d. Chương trình có thể đáp ứng được nhiều yêu cầu từ nhiều client đồng thời.
Đề 3.Viết chương trình FileClient sử dụng mô hình select làm nhiệm vụ sau:
a. Kết nối đến server có địa chỉ/tên miền được nhập từ bàn phím.
b. 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”.
c. Xử lý kết quả từ server
i. Nếu server báo lỗi, thì dữ liệu gửi trả có dạng “FAILED\n\n\n”.
ii. 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.
d. Chương trình có thể tải nhiều file cùng một lúc, từ nhiều server.
Đề 4.Viết chương trình FileServer sử dụng mô hình WSAEventSelect làm nhiệm vụ sau:
e. Đợi kết nối và xử lý lệnh từ client. Các lệnh có dạng “GET \n”. f.
Thực hiện đọc từ thư mục hiện tại tệp tin và gửi trả client theo định dạng “OK\n\n\n”
g. Nếu file không tồn tại thì gửi trả client xâu “FAILED\nFile not found\n\n”.
h. Chương trình có thể đáp ứng được nhiều yêu cầu từ nhiều client đồng thời.
Đề 5.Viết chương trình FileClient sử dụng mô hình WSAEventSelect làm nhiệm vụ sau:
e. Kết nối đến server có địa chỉ/tên miền được nhập từ bàn phím. f.
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”.
g. Xử lý kết quả từ server
iii. Nếu server báo lỗi, thì dữ liệu gửi trả có dạng “FAILED\n\n\n”.
iv. 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.
h. Chương trình có thể tải nhiều file cùng một lúc, từ nhiều server.
Lưu ý: Đề thi của sinh viên = phần dư (số thứ tự / 6). Ví dụ: STT 15 => Làm đề 3
ĐỀ THI GIỮA KỲ MÔN LẬP TRÌNH MẠNG 247
Thời gian: 90 phút – Không được phép dùng tài liệu Phần 1. Trắc nghiệm
(6đ – tô kết quả vào phiếu trả lời trắc nghiệm)
1. Thư viện liên kết động của Windows Socket có tên là: a. TCP a. WinSock.DLL b. IP b. WinSock2.DLL c. ICMP c. WS2.DLL d. UDP d. WS2_32.DLL
11. Dịch vụ phân giải tên miền chạy ở tầng nào trong các
2. Công cụ nào sử dụng để kiểm tra hoạt động của một máy tầng sau đây
chủ phân giải tên miền a. Application a. Ping b. Transport b. Nslookup c. Internetwork c. Netstat d. Datalink d. Ipconfig
12. Giao thức nào được sử dụng để chia sẻ một địa chỉ toàn
3. Biên của thông điệp trong các giao thức hướng dòng có
cục cho một nhóm các máy tính trong mạng LAN.
được bảo toàn hay không ? a. VLAN a. Có b. MAC b. Không c. NAT
c. Tùy từng trường hợp, nếu được tổ chức hợp lý.
d. Không đáp án nào đúng
4. Công cụ dùng để theo dõi tài nguyên sử dụng của máy
13. Trong một mạng máy tính được chia sẻ chung một địa
tính trên hệ điều hành Windows là
chỉ IP toàn cục. Thiết lập nào sau đây sẽ cho phép một a. Task Manager
máy tính từ Internet chủ động kết nối đến một máy chủ b. Resource Monitor trong mạng. c. Wireshark a. DMZ d. Phương án a và b. b. Virtual Server
5. Nếu cần phát triển thêm trình điều khiển cho một loại c. Port Forwarding
thiết bị mới. Ứng dụng sẽ phải viết ở tầng nào của
d. Cả ba phương án trên. Windows Socket
14. Để có thể sử dụng dụng thư viện Windows Socket, tệp a. Application
thư viện cần khai báo cho quá trình liên kết là. b. Provider a. Winsock.lib c. Transport Protocol b. WS2_32.LIB d. Không tầng nào đúng c. WS2_32.DLL
6. Công cụ dùng để bắt các gói tin gửi ra và vào một giao d. Winsock2.dll
diện mạng của máy tính là
15. Nếu cần phải thiết kế một giao thức mới, ứng dụng sẽ a. Netcat
phải tích hợp vào tầng nào của Windows Socket API b. Network Monitor a. Application c. Cain b. Provider
d. Không phương án nào đúng. c. Transport Protocol
7. Công cụ đa năng, vừa có thể đóng vai trò client, vừa d. Không tầng nào đúng.
server, chạy trên giao thức TCP, UDP là.
16. Công cụ chuẩn đoán mạng dùng để hiển thị các kết nối a. Netcat
hiện có trên máy tính là b. TCPDump a. Wireshark c. Netstat b. TCPView d. Network Monitor c. Netcat
8. WSADATA là cấu trúc dùng để
d. Tất cả các công cụ trên
a. Truyền thông tin về phiên bản WinSock mà ứng
17. Trình điều khiển cho một thiết bị mạng sẽ được chạy ở dụng muốn khởi tạo chế độ
b. Nhận thông tin về phiên bản WinSock có trên a. User Mode hệ thống. b. Kernel Mode
c. Cả hai đáp án đều sai. c. System Mode
9. Để có thể sử dụng thư viện Windows Socket, tệp tiêu đề
d. Không phương án nào đúng. cần khai báo là:
18. Hàm nào sau đây thực hiện công việc khởi tạo Windows a. Winsock.h Socket b. Winsock2.h a. WSStartup c. Ws2_32.h b. WinsockStartup d. Ws2.h c. SocketStartup
10. Nếu cần phải viết một ứng dụng cần tính đáp ứng nhanh d. WSAStartup
và chấp nhận sai sót. Giao thức lựa chọn sẽ là
19. Hàm nào sau đây sử dụng để giải phóng Windows Socket API. a. WSACleanup b. WSCleanup c. Cleanup d. Phương án khác:…
20. Lệnh nào sau đây dùng để tạo một socket TCP if (ret ==SOCKET_ERROR) {
a. socket(AF_INET,SOCK_STREAM,IPPROTO_TCP).
printf(“Loi ket noi: %d”, );
b. socket(AF_INET,SOCK_DGRAM,IPROTO_TCP). ;
c. Socket(AF_INET,SOCK_STREAM,IPPROTO_UDP) ;
d. socket(AF_INET,SOCKSTREAM,IPPROTOTCP). };
21. Cấu trúc nào được sử dụng để khai báo địa chỉ socket
a. : GetLastError, : closesocket (s), : internet: WSACleanup(). a. sock_addr
b. : WSAGetLastError(), close(s), : b. sockaddr Cleanup(). c. sockaddr_in
c. : WSALastError(), : closesocket(s), d. sock_addr_in : để trống.
22. Các giá trị lớn hơn 01 byte trong cấu trúc lưu trữ địa chỉ
d. Không phương án nào đúng.
của socket được tổ chức theo kiểu:
27. Để chuyển đổi một địa chỉ IP lưu trong biến serverAddr a. Đầu to
lưu trữ địa chỉ socket sang dạng xâu ký tự, lệnh nào sau b. Đầu nhỏ đây là đúng c. Tùy trường hợp
a. inet_ntos(serverAddr.sin_addr);
23. Để lấy mã lỗi của thao tác ngay trước đó. Hàm nào sau
b. inet_ntoa(serverAddr.s_addr);
đây sẽ được sử dụng
c. inet_itos(serverAddr.sin_addr); a. GetLastError
d. inet_ntoa(serverAddr.sin_addr); b. WSAGetError
28. Lệnh nào sau đây dùng để tạo một socket UDP c. WSAGetLastError
a. socket(AF_INET,SOCK_UDP, IPPROTO_TCP). d. WSALastError
b. socket(AF_INET,SOCK_DGRAM,IPROTO_TCP).
24. Để chuyển đổi một xâu sang địa chỉ IP, lệnh nào sau đây
c. Socket(AF_INET,SOCK_STREAM,IPPROTO_UDP) là đúng d. Không lệnh nào đúng.
a. inet_ntoa(“192.168.1.1”);
29. Để chuyển đổi giá trị cổng từ đầu nhỏ sang đầu to, lệnh
b. inet_aton(“192.168.1.1”);
nào sau đây sẽ được sử dụng
c. inet_addr(“192.168.1.1”); a. ntohl
d. inet_stoi(“192.168.1.1”); b. ntohs
25. Trong Windows Socket, với các hàm không có tiền tố c. htonl
WSA thì mã lỗi trả về là 0 có nghĩa là: d. htons a. Thành công
30. Để thực hiện phân giải tên miền bằng WinSock, cần bổ b. Thất bại sung tệp tiêu đề nào c. Tùy trường hợp a. Winsock2.h
26. Đoạn chương trình sau thực hiện kết nối đến một b. Ws2_32.h
server, điền vào vị trí , , các lệnh còn thiếu. c. Ws2ip.h ret = connect(s, d. Ws2tcpip.
(sockaddr*)&serverAddr,sizeof(serverAddr)); 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:
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.