Đề thi lập trình mạng cuối kỳ 20132

5 251 1
Đề thi lập trình mạng cuối kỳ 20132

Đang tải... (xem toàn văn)

Thông tin tài liệu

Bộ môn KTMT ĐỀ THI MÔN: LẬP TRÌNH MẠNG HỌ VÀ TÊN:………………………………………….…… SHSH: …………….… … LỚP: …… …… Thời gian làm bài: 90 phút Không sử dụng tài liệu Ngày thi: 1/4/2014 STT ĐỀ Một giao thức chat đơn giản chạy cổng TCP 8888 mô tả gói tin gửi nhận client server có cấu trúc sau: typedef struct { int iType; int iLength; char szNickname[32]; char bData[1024]; } Trong đó:     iType loại gói tin Có thể nhận giá trị sau: o iType = 0: Đăng nhập, gửi từ client => server, iLength = szNickname nickname client muốn đăng kí với server Giả sử việc đăng nhập không cần mật server luôn chấp nhận nickname nào, kể nickname sử dụng trước o iType = 1: Chat, gửi từ client => server server => client Nếu gửi từ client => server iLength chiều dài câu thoại, szNickname nickname đích nhận câu thoại Server nhận gói tin chỉnh sửa lại trường szNickname gói tin chuyển tiếp đến client Client nhận gói tin hiểu szNickname nickname gửi o iType = 2: List, gửi từ client => server server => client Nếu gửi từ client => server có nghĩa client muốn lấy danh sách nickname đăng nhập Ilength lúc bData ý nghĩa Nếu gửi từ server => client nghĩa server thông báo danh sách nickname đăng nhập, iLength chiều dài liệu phần bData, bData chứa danh sách nickname, nickname chiếm xác 32 kí tự (mặc dù thực tế hơn, kí tự NULL thêm vào cho đủ 32 kí tự) Ví dụ có nickname iLength = 96 bData[0] chứa nickname thứ 1, bData[32] chứa nickname thứ 2, bData[64] chứa nickname thứ Server chủ động gửi gói tin đến tất client có client vừa đăng nhập đăng xuất iLength: Chiều dài liệu phần bData, dài tối đa 1024 kí tự szNickname: Mang nhiều ý nghĩa, tùy theo trường iType: Nickname muốn đăng nhập, nickname muốn gửi tin nhắn nickname vừa gửi tin nhắn bData: liệu gói tin, mang nhiều ý nghĩa tùy theo trường iType Ban đầu client muốn tham gia vào hệ thống, phải gửi gói tin để đăng nhập với nickname người dùng chọn từ bàn phím Server tự động gửi trả danh sách nickname đăng nhập Client đợi lệnh từ người dùng gửi câu thoại đến nickname cụ thể theo khuôn dạng liệu Client tự động câu thoại nhận từ nickname khác danh sách nickname (nếu có thay đổi) từ server Câu 1: Viết chương trình console ChatClient kết nối với server theo giao thức Sử dụng mô hình blocking để gửi nhận liệu Câu 2: Viết chương trình console ChatServer để tiếp nhận client theo giao thức Sử dụng mô hình blocking để gửi nhận liệu Bộ môn KTMT ĐỀ THI MÔN: LẬP TRÌNH MẠNG HỌ VÀ TÊN:………………………………………….…… SHSH: …………….… … LỚP: …… …… Thời gian làm bài: 90 phút Không sử dụng tài liệu Ngày thi: 1/4/2014 STT ĐỀ Một giao thức chat đơn giản chạy cổng TCP 8888 mô tả gói tin gửi nhận client server có cấu trúc sau: typedef struct { int iType; int iLength; char szNickname[32]; char bData[1024]; } Trong đó:     iType loại gói tin Có thể nhận giá trị sau: o iType = 0: Đăng nhập, gửi từ client => server, iLength = szNickname nickname client muốn đăng kí với server Giả sử việc đăng nhập không cần mật server luôn chấp nhận nickname nào, kể nickname sử dụng trước o iType = 1: Chat, gửi từ client => server server => client Nếu gửi từ client => server iLength chiều dài câu thoại, szNickname nickname đích nhận câu thoại Server nhận gói tin chỉnh sửa lại trường szNickname gói tin chuyển tiếp đến client Client nhận gói tin hiểu szNickname nickname gửi o iType = 2: List, gửi từ client => server server => client Nếu gửi từ client => server có nghĩa client muốn lấy danh sách nickname đăng nhập Ilength lúc bData ý nghĩa Nếu gửi từ server => client nghĩa server thông báo danh sách nickname đăng nhập, iLength chiều dài liệu phần bData, bData chứa danh sách nickname, nickname chiếm xác 32 kí tự (mặc dù thực tế hơn, kí tự NULL thêm vào cho đủ 32 kí tự) Ví dụ có nickname iLength = 96 bData[0] chứa nickname thứ 1, bData[32] chứa nickname thứ 2, bData[64] chứa nickname thứ Server chủ động gửi gói tin đến tất client có client vừa đăng nhập đăng xuất iLength: Chiều dài liệu phần bData, dài tối đa 1024 kí tự szNickname: Mang nhiều ý nghĩa, tùy theo trường iType: Nickname muốn đăng nhập, nickname muốn gửi tin nhắn nickname vừa gửi tin nhắn bData: liệu gói tin, mang nhiều ý nghĩa tùy theo trường iType Ban đầu client muốn tham gia vào hệ thống, phải gửi gói tin để đăng nhập với nickname người dùng chọn từ bàn phím Server tự động gửi trả danh sách nickname đăng nhập Client đợi lệnh từ người dùng gửi câu thoại đến nickname cụ thể theo khuôn dạng liệu Client tự động câu thoại nhận từ nickname khác danh sách nickname (nếu có thay đổi) từ server Câu 1: Viết chương trình console ChatClient kết nối với server theo giao thức Sử dụng mô hình select để gửi nhận liệu Câu 2: Viết chương trình console ChatServer để tiếp nhận client theo giao thức Sử dụng mô hình select để gửi nhận liệu Bộ môn KTMT ĐỀ THI MÔN: LẬP TRÌNH MẠNG HỌ VÀ TÊN:………………………………………….…… SHSH: …………….… … LỚP: …… …… Thời gian làm bài: 90 phút Không sử dụng tài liệu Ngày thi: 1/4/2014 STT ĐỀ Một giao thức chat đơn giản chạy cổng TCP 8888 mô tả gói tin gửi nhận client server có cấu trúc sau: typedef struct { int iType; int iLength; char szNickname[32]; char bData[1024]; } Trong đó:     iType loại gói tin Có thể nhận giá trị sau: o iType = 0: Đăng nhập, gửi từ client => server, iLength = szNickname nickname client muốn đăng kí với server Giả sử việc đăng nhập không cần mật server luôn chấp nhận nickname nào, kể nickname sử dụng trước o iType = 1: Chat, gửi từ client => server server => client Nếu gửi từ client => server iLength chiều dài câu thoại, szNickname nickname đích nhận câu thoại Server nhận gói tin chỉnh sửa lại trường szNickname gói tin chuyển tiếp đến client Client nhận gói tin hiểu szNickname nickname gửi o iType = 2: List, gửi từ client => server server => client Nếu gửi từ client => server có nghĩa client muốn lấy danh sách nickname đăng nhập iLength lúc bData ý nghĩa Nếu gửi từ server => client nghĩa server thông báo danh sách nickname đăng nhập, iLength chiều dài liệu phần bData, bData chứa danh sách nickname, nickname chiếm xác 32 kí tự (mặc dù thực tế hơn, kí tự NULL thêm vào cho đủ 32 kí tự) Ví dụ có nickname iLength = 96 bData[0] chứa nickname thứ 1, bData[32] chứa nickname thứ 2, bData[64] chứa nickname thứ Server chủ động gửi gói tin đến tất client có client vừa đăng nhập đăng xuất iLength: Chiều dài liệu phần bData, dài tối đa 1024 kí tự szNickname: Mang nhiều ý nghĩa, tùy theo trường iType: Nickname muốn đăng nhập, nickname muốn gửi tin nhắn nickname vừa gửi tin nhắn bData: liệu gói tin, mang nhiều ý nghĩa tùy theo trường iType Ban đầu client muốn tham gia vào hệ thống, phải gửi gói tin để đăng nhập với nickname người dùng chọn từ bàn phím Server tự động gửi trả danh sách nickname đăng nhập Client đợi lệnh từ người dùng gửi câu thoại đến nickname cụ thể theo khuôn dạng liệu Client tự động câu thoại nhận từ nickname khác danh sách nickname (nếu có thay đổi) từ server Câu 1: Viết chương trình console ChatClient kết nối với server theo giao thức Sử dụng mô hình WSAEventSelect để gửi nhận liệu Câu 2: Viết chương trình console ChatServer để tiếp nhận client theo giao thức Sử dụng mô hình WSAEventSelect để gửi nhận liệu Bộ môn KTMT ĐỀ THI MÔN: LẬP TRÌNH MẠNG HỌ VÀ TÊN:………………………………………….…… SHSH: …………….… … LỚP: …… …… Thời gian làm bài: 90 phút Không sử dụng tài liệu Ngày thi: 1/4/2014 STT ĐỀ Một giao thức chat đơn giản chạy cổng TCP 8888 mô tả gói tin gửi nhận client server có cấu trúc sau: typedef struct { int iType; int iLength; char szNickname[32]; char bData[1024]; } Trong đó:     iType loại gói tin Có thể nhận giá trị sau: o iType = 0: Đăng nhập, gửi từ client => server, iLength = szNickname nickname client muốn đăng kí với server Giả sử việc đăng nhập không cần mật server luôn chấp nhận nickname nào, kể nickname sử dụng trước o iType = 1: Chat, gửi từ client => server server => client Nếu gửi từ client => server iLength chiều dài câu thoại, szNickname nickname đích nhận câu thoại Server nhận gói tin chỉnh sửa lại trường szNickname gói tin chuyển tiếp đến client Client nhận gói tin hiểu szNickname nickname gửi o iType = 2: List, gửi từ client => server server => client Nếu gửi từ client => server có nghĩa client muốn lấy danh sách nickname đăng nhập Ilength lúc bData ý nghĩa Nếu gửi từ server => client nghĩa server thông báo danh sách nickname đăng nhập, iLength chiều dài liệu phần bData, bData chứa danh sách nickname, nickname chiếm xác 32 kí tự (mặc dù thực tế hơn, kí tự NULL thêm vào cho đủ 32 kí tự) Ví dụ có nickname iLength = 96 bData[0] chứa nickname thứ 1, bData[32] chứa nickname thứ 2, bData[64] chứa nickname thứ Server chủ động gửi gói tin đến tất client có client vừa đăng nhập đăng xuất iLength: Chiều dài liệu phần bData, dài tối đa 1024 kí tự szNickname: Mang nhiều ý nghĩa, tùy theo trường iType: Nickname muốn đăng nhập, nickname muốn gửi tin nhắn nickname vừa gửi tin nhắn bData: liệu gói tin, mang nhiều ý nghĩa tùy theo trường iType Ban đầu client muốn tham gia vào hệ thống, phải gửi gói tin để đăng nhập với nickname người dùng chọn từ bàn phím Server tự động gửi trả danh sách nickname đăng nhập Client đợi lệnh từ người dùng gửi câu thoại đến nickname cụ thể theo khuôn dạng liệu Client tự động câu thoại nhận từ nickname khác danh sách nickname (nếu có thay đổi) từ server Câu 1: Viết chương trình console ChatClient kết nối với server theo giao thức Sử dụng mô hình Overlapped Event để gửi nhận liệu Câu 2: Viết chương trình console ChatServer để tiếp nhận client theo giao thức Sử dụng mô hình Overlapped Event để gửi nhận liệu Bộ môn KTMT ĐỀ THI MÔN: LẬP TRÌNH MẠNG HỌ VÀ TÊN:………………………………………….…… SHSH: …………….… … LỚP: …… …… Thời gian làm bài: 90 phút Không sử dụng tài liệu Ngày thi: 1/4/2014 STT ĐỀ Một giao thức chat đơn giản chạy cổng TCP 8888 mô tả gói tin gửi nhận client server có cấu trúc sau: typedef struct { int iType; int iLength; char szNickname[32]; char bData[1024]; } Trong đó:     iType loại gói tin Có thể nhận giá trị sau: o iType = 0: Đăng nhập, gửi từ client => server, iLength = szNickname nickname client muốn đăng kí với server Giả sử việc đăng nhập không cần mật server luôn chấp nhận nickname nào, kể nickname sử dụng trước o iType = 1: Chat, gửi từ client => server server => client Nếu gửi từ client => server iLength chiều dài câu thoại, szNickname nickname đích nhận câu thoại Server nhận gói tin chỉnh sửa lại trường szNickname gói tin chuyển tiếp đến client Client nhận gói tin hiểu szNickname nickname gửi o iType = 2: List, gửi từ client => server server => client Nếu gửi từ client => server có nghĩa client muốn lấy danh sách nickname đăng nhập Ilength lúc bData ý nghĩa Nếu gửi từ server => client nghĩa server thông báo danh sách nickname đăng nhập, iLength chiều dài liệu phần bData, bData chứa danh sách nickname, nickname chiếm xác 32 kí tự (mặc dù thực tế hơn, kí tự NULL thêm vào cho đủ 32 kí tự) Ví dụ có nickname iLength = 96 bData[0] chứa nickname thứ 1, bData[32] chứa nickname thứ 2, bData[64] chứa nickname thứ Server chủ động gửi gói tin đến tất client có client vừa đăng nhập đăng xuất iLength: Chiều dài liệu phần bData, dài tối đa 1024 kí tự szNickname: Mang nhiều ý nghĩa, tùy theo trường iType: Nickname muốn đăng nhập, nickname muốn gửi tin nhắn nickname vừa gửi tin nhắn bData: liệu gói tin, mang nhiều ý nghĩa tùy theo trường iType Ban đầu client muốn tham gia vào hệ thống, phải gửi gói tin để đăng nhập với nickname người dùng chọn từ bàn phím Server tự động gửi trả danh sách nickname đăng nhập Client đợi lệnh từ người dùng gửi câu thoại đến nickname cụ thể theo khuôn dạng liệu Client tự động câu thoại nhận từ nickname khác danh sách nickname (nếu có thay đổi) từ server Câu 1: Viết chương trình console ChatClient kết nối với server theo giao thức Sử dụng mô hình Overlapped Completion Routine để gửi nhận liệu Câu 2: Viết chương trình console ChatServer để tiếp nhận client theo giao thức Sử dụng mô hình Overlapped Completion Routine để gửi nhận liệu ... chấp nhận nickname nào, kể nickname sử dụng trước o iType = 1: Chat, gửi từ client => server server => client Nếu gửi từ client => server iLength chiều dài câu thoại, szNickname nickname đích... sách nickname, nickname chiếm xác 32 kí tự (mặc dù thực tế hơn, kí tự NULL thêm vào cho đủ 32 kí tự) Ví dụ có nickname iLength = 96 bData[0] chứa nickname thứ 1, bData[32] chứa nickname thứ 2, bData[64]... chấp nhận nickname nào, kể nickname sử dụng trước o iType = 1: Chat, gửi từ client => server server => client Nếu gửi từ client => server iLength chiều dài câu thoại, szNickname nickname đích

Ngày đăng: 15/01/2016, 18:26

Tài liệu cùng người dùng

Tài liệu liên quan