You are on page 1of 5

Lập trình mạng

1. Thứ tự thực hiện lệnh đúng:


[A] WSAStartup, bind, listen, accept
2. Hệ thống phân giải tên miền (DNS) sử dụng giao thức:
[A] TCP
3. IPv6 sử dụng bao nhiêu bit để đánh địa chỉ
[D] 128
4. Các giao thức tầng ứng dụng nào dưới đây sử dụng giao thức TCP
[A] POP3, FTP, HTTP, TELNET
5. Hàm WSAWaitForMultipleEvents trả về giá trị 3, giá trị
WSA_WAIT_EVENT0 là 0, hỏi các “khóa” (event) nào sau đây có thể bị mở
(set)?
[C] 3,4,5,6,7
Nếu có nhiều đối tượng sự kiện được báo hiệu trong khi gọi, giá trị trả về cho biết
chỉ số mảng lphEvents của đối tượng sự kiện được báo hiệu với giá trị chỉ mục nhỏ
nhất trong tất cả các đối tượng sự kiện được báo hiệu.
6.
[D] 1024
7.
select: max = 1024 còn default là 64
//WSAAsyncSelect: 1024
[C] WSAEventSelect: Dựa vào số luồng (mỗi luồng 64)
8.
[C] WSAAsyncSelect
9.
[D] WSAEventSelect
10.
PORT
11.Trong giao thức FTP, khi thực hiện RETR trình tự..
[B] Kết nối client qua cổng dữ liệu => Gửi phản hồi 150 => Gửi dữ liệu => Gửi
phản hồi 226
12. Trong HTTP, nếu muốn gửi yêu cầu lấy kích thước mà không lấy nội dung thì
giao thức nào sẽ được sử dụng?
[B] Head
13. Ưu điểm của mô hình multi-thread so với mô hình select
[C] Xử lý các yêu cầu đồng thời
[D] Cần xử lý xung đột giữa các luồng
14.
[C] Server chờ ở cổng 20480
0000 0000 0101 0000
1010 0000 0000
15.
[B] recv(client, buf, sizeof(buf),0);
16.
[C] Bắt và phân tích gói tin
17.
[C]. 14
18.
[D] UPDATE
19.
[D] send(client, itoa(n, buf, 10), 4, 0);
20.
[D]. 2
Câu 1:
void SendFile(SOCKET *c, char* path)
{
char header[1024];
memset(header, 0, 1024);
strcpy(header, “[ 21 ]”);
char* pattern = strstr(path, “***”);
pattern[0] = 0;
if(_stricmp(path + strlen(path) – 4, “.jpg”) == 0){
sprintf(header + strlen(header), “[ 22 ]: image/jpeg\n”);
} else {
// ….
}
Char buffer[1024];
FILE* f = fopen(path, “rb”);
Fseek(f, 0, SEEK_END);
Int flen = [ 23 ];
fseek(f, 0, SEEK_SET);
sprintf(header + strlen(header), “[ 24 ]: %d\n\n”, flen);
while(!feof(f)){
int r = fread(buffer, 1, sizeof(buffer), f);
[ 25 ]
}
fclose(f);
}
[21]: /
[22]: %s
[23]: ftell(f)
[24]: %s
[25]: send(c, buffer, sizeof(buffer), 0);

Câu 2:
[26]: WSAGetOverlappedResult
[27]: lp_per_handle_data

Câu 3:
[28]: int clen = sizeof(caddr);
[29]: argv[1]
[30]: accept(s, (sockaddr*)&caddr, &clen);
[31]: nclient++;
[32]: CreateThread(NULL, 0, SRThread,(LPVOID)count, 0, NULL);

Câu 4:
[33]: socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
[34]: recvfrom(s, buf, sizeof(buf), 0, (sockaddr*)&sAddr, &sAddrlen);
[35]: sAddr.sin_addr
[36]: sAddr.sin_port

Câu 5:
[37]: FD_SET(server, &fd);
[38]: FD_SET(clients[i], &fd);
[39]: FD_ISSET(clients[i], &fd);
[40]: continue;

You might also like