Raw Socket • Cho phép truyền dữ liệu ở mức dưới tầng giao vận • Thêm khóa registry HKEY_LOCAL_MACHINE\System\CurrentControlSet\Servi ces\AFD\Parameters\DisableRawSecurity • Chạy chương trình với quyền Administrator • Khởi tạo: socket(s, SOCK_RAW, protocol) protocol: giao thức điều khiển truyền dữ liệu trên raw socket • IPPROTO_UDP, IPPROT...
20 trang | Chia sẻ: dntpro1256 | Ngày: 23/11/2020 | Lượt xem: 1058 | Lượt tải: 0
Các kỹ thuật vào ra(tiếp) • Kỹ thuật vào ra overlapped, xử lý bằng completon routine • Ưu điểm: hiệu năng cao, không hạn chế số kết nối có thể xử lý • Hạn chế: completion routine không thực hiện được các tác vụ nặng • Kỹ thuật vào ra overlapped theo completion port • Ưu điểm: hiệu năng cao, không hạn chế số kết nối có thể xử lý. Là mô hình ph...
25 trang | Chia sẻ: dntpro1256 | Ngày: 23/11/2020 | Lượt xem: 992 | Lượt tải: 0
• Để thiết lập lại chế độ chặn dừng cho socket: 1. Gọi lại hàm WSAAsyncSelect( ) với lEvent = 0 2. Gọi hàm ioctlsocket( ) thiết lập lại chế độ chặn dừng • Socket trả về từ hàm accept() sử dụng cùng mã thông điệp và mặt nạ sự kiện với listenning socket • Gọi hàm WSAAsyncSelect() để thiết lập các giá trị khác (nếu cần) • Hai cách gọi sau là khô...
27 trang | Chia sẻ: dntpro1256 | Ngày: 23/11/2020 | Lượt xem: 1311 | Lượt tải: 0
Viết chương trình Bắt đầu đơn giản Dần dần thay đổi theo yêu cầu Luôn có chương trình chạy được Sơ đồ khối, mã giả, tư tưởng chia để trị string, thao tác với xâu kí tự Khởi tạo xâu, duyệt ký tự, nối/cộng xâu Dùng hằng thay vì magic number cho các giá trị không đổi
38 trang | Chia sẻ: dntpro1256 | Ngày: 23/11/2020 | Lượt xem: 979 | Lượt tải: 0
Bạn có nhận ra mỗi lần chạy chương trình, máy “nghĩ” lại cùng một con số Tìm kiếm Google: “C++ random repeat” Câu lệnh: srand(time(0)); Khởi tạo “hạt giống” cho hàm rand() bằng thời gian bắt đầu chạy chương trình Lưu ý: chỉ cần gọi srand() một lần. Mỗi lần chạy, chương trình dùng một hạt giống khác nhau : thời gian hiện hành
34 trang | Chia sẻ: dntpro1256 | Ngày: 23/11/2020 | Lượt xem: 1094 | Lượt tải: 0
Cài đặt giao thức với ngôn ngữ lập trình • Khai báo dạng thông điệp, trạng thái • Dùng số nguyên typedef enum messType { } hoặc khai báo hằng • Dùng mẫu ký tự: USER, PASS • Kết hợp • Khuôn dạng thông điệp • Dùng cấu trúc: Cần ép kiểu khi gửi và khi nhận • Dùng xâu ký tự: cần có ký hiệu phân cách giữa các trường • Khác: Serialisation, XML,...
38 trang | Chia sẻ: dntpro1256 | Ngày: 23/11/2020 | Lượt xem: 1128 | Lượt tải: 0
Regular Expression hay còn gọi là biểu thức chính quy dùng để chỉ cách thức chúng ta nhận biết, kiểm tra một chuỗi (biểu thức) có đúng như định dạng chúng ta mong muốn hay không. Một số pattern đơn giản: ^ phủ định $ kết thúc một pattern [abc] ký tự a, b và c [^abc] bất kỳ ký tự nào trừ a, b, c [a-z0-9...
90 trang | Chia sẻ: dntpro1256 | Ngày: 23/11/2020 | Lượt xem: 987 | Lượt tải: 0
Ôn tập Nhập liệu từ luồng nhập chuẩn, từ dòng lệnh Kiểu dữ liệu cơ bản Các phép toán số học, thứ tự phép toán Lệnh rẽ nhánh: if, switch Hàm có tham số và kết quả trả về Lời gọi hàm
18 trang | Chia sẻ: dntpro1256 | Ngày: 23/11/2020 | Lượt xem: 1034 | Lượt tải: 0
Windows Socket (WinSock) • Transport Protocols là các driver ở tầng thấp nhất, điều khiển trực tiếp thiết bị. Các driver này do nhà sản xuất phần cứng xây dựng, và giao tiếp với AFD.SYS thông qua giao diện TDI ( Transport Driver Interface) • Việc lập trình Socket sẽ chỉ thao tác với đối tượng SOCKET. • Mỗi ứng dụng cần có một SOCKET trước kh...
32 trang | Chia sẻ: dntpro1256 | Ngày: 23/11/2020 | Lượt xem: 1215 | Lượt tải: 0
Nhanh C++ được thiết kế với mục tiêu hiệu năng cao Mềm dẻo C++ hỗ trợ nhiều kiểu lập trình (cổ điển và hiện đại): thủ tục, hướng đối tượng, lập trình mẫu Hệ thống thư viện hỗ trợ C++ có nhiều thư viện hỗ trợ mạnh được viết, kiểm thử cẩn thận (đồ họa, thuật toán )
16 trang | Chia sẻ: dntpro1256 | Ngày: 23/11/2020 | Lượt xem: 1074 | Lượt tải: 0