Ngân hàng câu hỏi thi trắc nghiệm Lập Trình Mạng | Trường Đại học Bách khoa Hà Nội

Ngân hàng câu hỏi thi trắc nghiệm Lập Trình Mạng | Trường Đại học Bách khoa Hà Nội. Tài liệu được sưu tầm, giúp bạn ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!

Môn:

Lập trình mạng 29 tài liệu

Trường:

Đại học Bách Khoa Hà Nội 2.8 K tài liệu

Thông tin:
63 trang 4 tháng trước

Bình luận

Vui lòng đăng nhập hoặc đăng ký để gửi bình luận.

Ngân hàng câu hỏi thi trắc nghiệm Lập Trình Mạng | Trường Đại học Bách khoa Hà Nội

Ngân hàng câu hỏi thi trắc nghiệm Lập Trình Mạng | Trường Đại học Bách khoa Hà Nội. Tài liệu được sưu tầm, giúp bạn ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!

88 44 lượt tải Tải xuống
Ngân hàng câu h i thi L p Trình M ng
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ó 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
4. 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
5. 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. Resource Monitor
c. Wireshark
d. Ph ng án a và b.ươ
6. 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. Không ph ng án nào đúng.ươ
7. 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
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. 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
11. 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. ươ
12. 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
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 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 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
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. 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 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
21. Đ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.ươ
22. 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ườ
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_T
CP).
c. Socket(AF_INET,SOCK_STREAM,IPPROTO_
UDP).
d. socket(AF_INET,SOCKSTREAM,IPPROTOT
CP).
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_T
CP).
c. Socket(AF_INET,SOCK_STREAM,IPPROTO_
UDP).
d. Không l nh nào đúng.
25. 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
26. 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ườ
27. Đ 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”);
28. Đ 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);
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.h
31. Đ th c hi n phân gi i tên mi n b ng WinSock, hàm nào sau đây có th s d ng
a. getaddrinfo
b. gethostinfo
c. getpeerinfo
d. C ba hàm trên
32. K t qu tr v c a thao tác phân gi i tên mi n là <A> và ph i gi i phóng b ng hàm/toán t <B>ế
a. <A>: M ng, <B> delete
b. <A>: Danh sách liên k t đ n, <B> freeế ơ
c. <A>: Danh sách liên k t kép, <B> ế
freeaddrinfo
d. <A>: Danh sách liên k t đ n, <B> ế ơ
freeaddrinfo
33. Tr ng nào sau đây trong c u trúc addrinfo ch a thông tin v đ a ch socket phân gi i đ c.ườ ượ
a. ai_addr.
b. sock_addr.
c. addr.
d. in_addr.
34. Trong tr ng h p nào sau đây hàm ườ bind sẽ th t b i
a. T ng l a ch n.ườ
b. Đã có ng d ng khác m s d ng c ng
trên.
c. Socket không h p l .
d. C ba tr ng h p trên. ườ
35. L nh nào sau đây sẽ g n m t socket s vào giao di n m ng b t kỳ đ c mô t trong c u trúc đ a ch serverAddr. ượ
a. bind(s,(sockaddr_in*)&serverAddr,
sizeof(serverAddr));
b. bind(s,
(sockaddr*)serverAddr,sizeof(serverAddr
));
c. bind(s,
(sockaddr*)&serverAddr,sizeof(sockaddr_
in));
d. Không l nh nào đúng.
36. L nh nào sau đây sẽ gán giá tr c ng 8080 cho c u trúc đ a ch serverAddr.
a. serverAddr.sin_port = 8080.
b. serverAddr.s_port = 8080.
c. serverAddr.sin_port = htonl(8080).
d. L nh khác…
37. Đo n ch ng trình sau sẽ th c hi n ch p nh n k t n i t client. Đi n vào ch tr ng các ph ng án c n thi t ươ ế ươ ế
SOCKET server,client;
sockaddr_in clientAddr;
int len;
len = <A>;
client = accept(server,<B>, <C>);
a. <A> = 0, <B> = clientAddr, <C> = len.
b. <A> = sizeof(client), <B> = &clientAddr, <C>
=len.
c. <A> = 0, <B> = (sockaddr*)&clientAddr, <C> =
&len.
d. <A> = sizeof(clientAddr), <B> =
(sockaddr*)&clientAddr,&len.
38. Đo n ch ng trình sau th c hi n đ c d li u t bàn phím và g i đi qua socket s. Đi n vào ch tr ng nh ng l nh còn ươ
thi u.ế
char str[1024];
int ret = 0;
gets(str);
<A> = send(s,str,<B>,0);
if (<A> <= 0)
{
printf("Loi gui xau!");
<C>;
}
a. <A> = ret, <B> = 1024, <C> = đ tr ng.
b. <A> = ret, <B> = sizeof(str), <C> =
close(s).
c. <A> = str, <B> = strlen(str), <C> = close(s).
d. <A> = ret, <B> = strlen(str), <C> =
closesocket(s).
39. 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.
40. Khi socket ho t đ ng ch đ đ ng b , m i l i g i hàm sẽ: ế
a. Ch n t t c các lu ng c a ch ng trình ươ
cho đ n khi thao tác vào ra hoàn t tế
b. Ch n t t c các lu ng tr lu ng ch a l i
g i
c. Ch ch n lu ng ch a l i g i, các lu ng
khác v n ch y bình th ng. ườ
d. Không ch n lu ng nào c .
41. Khi socket ho t đ ng ch đ b t đ ng b , m i l i g i hàm sẽ ế
a. Ch n t t c các lu ng c a ch ng trình ươ
cho đ n khi thao tác vào ra hoàn t tế
b. Ch n t t c các lu ng tr lu ng ch a l i
g i
c. Ch ch n lu ng ch a l i g i, các lu ng
khác v n ch y bình th ng. ườ
d. Không ch n lu ng nào c .
42. M c đ nh socket khi đ c t o ra ho t đ ng ch đ <A>, hàm <B> sẽ thay đ i ch đ ho t đ ng c a socket. ượ ế ế
a. <A>: đ ng b , <B>: ioctlsocket.
b. <A>: b t đông b , <B>:ioctlsocket.
c. <A>: đ ng b , <B>: WSAAsyncSelect.
d. C a và c đ u đúng
43. Khi socket s ho t đ ng ch đ đ ng b , hàm recv(s,buff,1024,0) sẽ không ch n lu ng ch a l i g i trong tr ng h p ế ườ
nào sau đây.
a. Có d li u t b đ m h th ng nh ng ư
không đ 1024 byte.
b. Có đ 1024 byte d li u t b đ m h
th ng.
c. K t n i b đóng.ế
d. C ba ph ng án trên đ u đúng. ươ
44. N u c n xây d ng server đáp ng đ c t i thi u 10 k t n i, ch ng trình sẽ c n khai báo bao nhiêu socket ?ế ượ ế ươ
a. 11
b. 10
c. 20
d. 21
45. N u vi c g i d li u cho các k t n i đ c t p trung vào trong m t lu ng, thì mô hình Blocking c n t i thi u bao nhiêu ế ế ư
lu ng đ đáp ng đ c 100 k t n i. ượ ế
a. 100
b. 200
c. 201
d. 101
46. Trong mô hình Select, đ thăm dò s ki n k t n i đ n server thành công, client c n cho socket vào t p nào ế ế
a. readfds
b. writefds
c. exceptfds
d. C ba t p đ u đ c. ượ
47. N u dùng mô hình ế Select và thăm dò s ki n cho 100 k t n i, ng d ng sẽ c n bao nhiêu lu ng ? ế
a. 100
b. 2
c. 101
d. 1.
48. Trong mô hình Select, socket ch y ch đ nào ? ế
a. Đ ng b
b. B t đ ng b
c. Không xác đ nh
49. Hàm callback WindowProc đ c g i trong ng c nh c a:ượ
a. M t lu ng riêng đ c h th ng t o ra. ượ
b. Lu ng chính x lý giao di n.
c. Lu ng ph do ch ng trình t o ra. ươ
d. Ph ng án khác…ươ
50. Trong các hàm x lý s ki n c a ch ng trình có giao di n đ h a, có nên g i các hàm đ ng b c a WinSock ? ươ
a. Không, vì sẽ làm vi c g i nh n d li u
c a socket b ch m đi.
b. Không, vì sẽ làm h đi u hành b treo.
c. Có, vì không nh h ng gì đ n ch ng ưở ế ươ
trình.
d. Không, vì sẽ làm gi m kh năng đáp ng
c a ch ng trình v i các s ki n ng i ươ ườ
dùng.
51. Trong mô hình WSAEventSelect, gi s ng d ng có 10 SOCKET, c n m y đ i t ng WSAEVENT t ng ng? ượ ươ
a. 10
b. 20
c. 11
d. S khác…
52. Đ i t ng WSAEVENT đ c t o ra b i WSACreateEvent có thu c tính: ượ ượ
a. Signaled, auto reset
b. Non-signaled, auto reset
c. Signaled, manual reset
d. Non-signaled , manual reset
53. Hàm WSAWaitForMultipleEvent sẽ ch n lu ng có l i g i đ n khi ế
a. Các đ i t ng EVENT chuy n sang tr ng ượ
thái báo hi u
b. H t giế
c. Các đ i t ng EVENT chuy n sang tr ng ượ
thái ch a báo hi uư
d. C a và b
54. Gi s s là socket dùng đ k t n i đ n server khác, l nh nào sau đây thích h p nh t. ế ế
a. WSAEventSelect(s, event, FD_ACCEPT |
FD_CLOSE);
b. WSAEventSelect(s, event, FD_CONNECT|
FD_WRITE|FD_READ|FD_CLOSE);
c. WSAEventSelect(s, event, FD_ACCEPT|
FD_CONNECT);
d. WSAEventSelect(s, event, FD_CONNECT|
FD_CLOSE);
55. Nh ng hàm nào sau đây có th s d ng mô hình vào ra Overlapped
a. WSAConnect
b. accept
c. WSARecv
d. a và c
56. Có th s d ng cùng m t đ i t ng EVENT cho hai socket khác nhau trong mô hình Overlapped đ c không ượ ượ
a. b. Không
57. Trong mô hình vào ra Overlapped, completion routine sẽ đ c g i b i:ượ
a. Ch ng trình trong cùng lu ng có yêu c u vào ra.ươ
b. Ch ng trình trong m t lu ng khác v i lu ng có yêu c u vào ra.ươ
c. H đi u hành trong lu ng khác v i lu ng có yêu c u vào ra.
d. H đi u hành trong lu ng cùng v i lu ng có yêu c u vào ra.
58. Alertable là tr ng thái:
a. Đang ng và s n sàng th c hi n hàm callback t h đi u hành
b. Đang th c thi và s n sàng th c hi n hàm callback t h đi u hành
c. Đang ng và ch a s n sàng th c hi n hàm callback t h đi u hành ư
d. Đang th c thi và ch a s n sàng th c hi n hàm callback t h đi u hành ư
59. Hàm nào sau đây có th đ a lu ng v tr ng thái alertable ư
a. SleepEx
b. WSAConnect
c. Sleep
d. C a và c
60. CSocket là l p
a. C s c a CAsyncSocketơ
b. D n xu t c a CAsyncSocket
c. K th a c a CAsyncSocketế
d. Không có quan h gì v i CAsyncSocket
61. Các ph ng th c c a CSocket đ u ho t đ ngươ
a. Đ ng b b. B t đ ng b
62. Các ph ng th c c a CAsyncSocket đ u ho t đ ngươ
a. Đ ng b b. B t đ ng b
63. Lu ng A t o đ i t ng m có ki u CSocket. Trong lu ng B, l nh nào sau đây là h p l ượ
a. m.Connect(“127.0.0.1”,8888);
b. m.Close();
c. m.ShutDown();
d. C ba đ u không h p l .
64. Đ x lý s ki n cho CAsyncSocket c n ph i
a. G n đ i t ng vào m t bi n có ki u WSAEVENT. ượ ế
b. G n đ i t ng vào m t c a s qua hàm WSAAsyncSelect. ượ
c. Truy n đ i s là m t hàm callback cho các thao tác vào ra.
d. K th a ra m t l p m i và vi t các ph ng th c ch ng.ế ế ươ
65. Đo n ch ng trình sau s d ng trong ch ng trình chat Voice x lý vi c nh n d li u t server, hãy đi n vào ch tr ng ươ ươ
nh ng l nh c n thi t. ế
enum PACKET_TYPE
{
PACKET_TYPE_TEXT,
PACKET_TYPE_VOICE,
PACKET_TYPE_IMAGE
};
struct Packet
{
char type;
int len;
char data[65536];
};
int total = 0;
int len = 0;
SOCKET s;
Packet p;
recv(s,&p.type,<A> ,MSG_WAITALL);
recv(s,(char*)&p.len,<B>,MSG_WAITALL);
switch (p.type)
{
case <C>:
while (total<p.len)
{
len = recv(s,<D>,<E>,0);
if (len<=0) break;
total+=<F>;
};
p.data[total] = <G>;
printf("Text:%s",p.data);
}
Giá tr thích h p cho <A> là
a. 1 b. 2 c. 4 d. sizeof(p)
66. Giá tr thích h p cho <B> là
a. 1
b. 2
c. 4
d. sizeof(Packet)
67. Giá tr thích h p cho <C> là
a. PACKET_TYPE_VOICE
b. PACKET_TYPE_IMAGE
c. PACKET_TYPE_TEXT
d. Giá tr khác…
68. Giá tr thích h p cho <D> là
a. &p
b. p.data
c. p.data+p.len
d. Ph ng án khác…ươ
69. Giá tr thích h p cho <E> là
a. p.len
b. p.len – total
c. total
d. 65536
70. Giá tr thích h p cho <F> là
a. len
b. pk.len
c. sizeof(Packet)
d. 4
71. Giá tr thích h p cho <G> là
a. 0xFF
b. 0
c. 1
d. Ph ng án khác…ươ
72. Đo n ch ng trình sau đây th c hi n nh n d li u t m t socket UDP và ki m tra l i checksum, đi n vào ch tr ng ươ
nh ng l nh thích h p
struct Packet
{
int offset;
int len;
unsigned short checksum; // XOR
char data[1024];
};
Packet p;
SOCKADDR_IN from;
int fromLen = <A>;
int total = 0, len;
unsigned short tmpchecksum = 0;
SOCKET s;
memset(&p,0,sizeof(p));
len = recvfrom(s,(char*)&p,10,0,<E>,&fromLen);
while (<B>)
{
len = recvfrom(s,<C>,<D>,0,<E>,&fromLen);
if (len <=0 ) break;
total += len;
};
for (int i=0;i<(p.len+1)/2;i++)
tmpchecksum = tmpchecksum <F> *((unsigned short*)(&p.data[<G>]));
if (tmpchecksum!=p.checksum)
printf("Goi tin bi loi!");
Giá tr thích h p cho <A> là
a. 1024
b. sizeof(p)
c. sizeof(from)
d. Ph ng án khác…ươ
73. Giá tr thích h p cho <B> là
a. true
b. 1
c. total >= p.len
d. total < p.len
74. Giá tr thích h p cho <C> là
a. p.data + len
b. p.data
c. p.data + (p.len – total)
d. C ba đ u sai
75. Giá tr thích h p cho <D> là
a. 1024
b. p.len – total
c. p.len + total
d. p.len
76. Giá tr thích h p cho <E> là
a. &from
b. sizeof(from)
c. (sockaddr*)from
d. (sockaddr*)&from
77. Giá tr thích h p cho <F> là
a. ^
b. |
c. &
d. ~
78. Giá tr thích h p cho <G> là
a. i*2
b. i*3
c. i*4
d. i
79. Đo n ch ng trình server sau qu n lý các k t n i c a client d i d ng danh sách liên k t kép. Đi n vào ch tr ng các ươ ế ướ ế
l nh thích h p
struct Connection
{
SOCKADDR_IN addr;
SOCKET s;
HANDLE hThread;
Connection * pNext;
Connection * pPrev;
};
Connection * pHead = 0,*pCur = 0,*pTmp = 0;
SOCKET listen;
SOCKET c;
SOCKADDR_IN cAddr;
int ret , cAddrLen = sizeof(cAddr);
while (1)
{
<A> = accept(listen,(sockaddr*)&cAddr,<B>);
if (!pHead)
{
pTmp = pCur = pHead = <C>;
memset(pTmp,0,sizeof(Connection));
}
else
{
pTmp = <C>;
memset(pTmp,0,sizeof(Connection));
pCur->pNext =<D>;
pTmp->pPrev = <E>;
pCur = pTmp;
};
pTmp->s = <F>;
pTmp->hThread = CreateThread(0,0,ReceiverThread,<G>,0,0);
};
Giá tr thích h p cho <A> là
a. ret
b. c
c. Đ tr ng
d. pHead
80. Giá tr thích h p cho <B> là
a. sizeof(cAddr)
b. cAddrLen
c. &cAddrLen
d. &ret
81. Giá tr thích h p cho <C> là
a. new Connection
b. new SOCKET
c. 0
d. Ph ng án khác…ươ
82. Giá tr thích h p cho <D> là ơ
a. pTmp
b. pCur
c. pHead
d. pHead->pNext
83. Giá tr thích h p cho <E> là
a. pHead
b. pCur
c. pTmp
d. pCur->pNext
84. Giá tr thích h p cho <F> là
a. c
b. listen
c. 0
d. Ph ng án khác…ươ
85. Giá tr thích h p cho <G> là
a. pHead
b. pCur
c. pTmp
d. 0
86. Đo n ch ng trình sau th c hi n phân gi i tên mi n nh p t bàn phím v i c ng 8888 sau đó hi n các k t qu ra màn ươ ế
hình, đi n vào ch tr ng các 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,<A>,0,<B>);
if (ret)
{
printf("Khong tim thay server");
return 0;
};
pCur = info;
while (pCur)
{
memcpy(&addr,<C>,pCur->ai_addrlen);
printf("%s\n",<D>);
pCur = pCur->ai_next;
};
Giá tr thích h p cho <A> là
a. “8888”
b. 8888
c. htons(8888)
d. ntohs(8888);
87. Giá tr thích h p cho <B> là
a. info
b. &info
c. 0
d. &addr
88. Giá tr thích h p cho <C> là
a. info->ai_addr
b. pCur
c. info
d. pCur->ai_addr
89. Giá tr thích h p cho <D> là
a. inet_addr(addr.sin_addr)
b. inet_ntoa(pCur)
c. inet_ntoa(pCur->sin_addr)
d. Ph ng án khác…ươ
90. Đo n ch ng trình sau minh h a vi c x lý l nh c a HTTP server đ phân tách URL mà client yêu c u. Server sẽ d ng ươ
vi c nh n d li u cho đ n khi g p c p ký t “\r\n\r\n”. Đi n vào ch tr ng các 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, <A> , 1 , MSG_WAITALL);
if (ret<=0) break;
len += ret;
if ((command[<B>-1]=='\n')&&(command[<B>-2]=='\r')&&
(command[<B>-4]=='\n')&&(command[<B>-3]=='\r'))
break;
};
command[len] = 0;
if (strstr(command,"GET ")==0)
printf("Unknown command");
pos = strstr(command,"HTTP/1.0");
if (pos==0)
pos = strstr(command,"HTTP/1.1");
if (pos <C> 0)
{
printf("Invalid format");
return 0;
};
strncpy(url,<D>,pos-command-4);
url[<E>] = 0;
Giá tr thích h p cho <A> là
a. command
b. command+len
c. command+1
d. &command
91. Giá tr thích h p cho <B> là
a. ret
b. len
c. pos
d. len-1
92. Giá tr thích h p cho <C> là
a. ==
b. >
c. <
d. <=
93. Giá tr thích h p cho <D> là
a. command
b. command+4
c. command-4
d. &command+4
94. Giá tr thích h p cho <E> là
a. pos
b. pos-command
| 1/63