Ổ cắm không chặn là gì?
Ổ cắm không chặn là gì?

Video: Ổ cắm không chặn là gì?

Video: Ổ cắm không chặn là gì?
Video: Ổ cắm điện Panasonic Wide và Full nên chọn loại nào? 2024, Tháng mười một
Anonim

không - ổ cắm chặn . Giải pháp cho vấn đề này được gọi là " không - ổ cắm chặn ". Theo mặc định, TCP ổ cắm đang ở trong " chặn lại ". Ví dụ: khi bạn gọi recv () để đọc từ một luồng, điều khiển sẽ không được trả về chương trình của bạn cho đến khi ít nhất một byte dữ liệu được đọc từ trang web từ xa.

Theo đó, ổ cắm chặn và ổ cắm không chặn là gì?

Trong chặn lại chế độ recv, gửi, kết nối (chỉ TCP) và chấp nhận (chỉ TCP) ổ cắm Các lệnh gọi API sẽ khối vô thời hạn cho đến khi hành động được yêu cầu đã được thực hiện. Trong không - chặn lại , các chức năng này trở lại ngay lập tức. chọn ý chí khối cho đên khi ổ cắm sẵn sàng.

Người ta cũng có thể hỏi, các ổ cắm có bị chặn theo mặc định không? Qua vỡ nợ , TCP ổ cắm được đặt trong một chặn lại chế độ. Điều này có nghĩa là điều khiển không được trả lại cho chương trình của bạn cho đến khi một số hoạt động cụ thể hoàn tất.

Về điều này, làm thế nào để bạn tạo ra một ổ cắm không chặn?

Để đánh dấu một ổ cắm như không - chặn lại , chúng tôi sử dụng lệnh gọi hệ thống fcntl. Đây là một ví dụ: int flags = Guard (fcntl (socket_fd, F_GETFL), "không thể lấy cờ tệp"); Guard (fcntl (socket_fd, F_SETFL, flags | O_NONBLOCK), "không thể bộ cờ tệp ");

Chặn ổ cắm là gì?

MỘT ổ cắm có thể ở trong " chế độ chặn "hoặc" không chặn chế độ . "Các chức năng của ổ cắm trong chặn lại (hoặc đồng bộ) chế độ không quay lại cho đến khi họ có thể hoàn thành hành động của mình. Đây được gọi là chặn lại vì ổ cắm mà hàm được gọi không thể làm bất cứ điều gì - bị chặn - cho đến khi cuộc gọi trả về.

Đề xuất: