Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Hệ điều hành Unix] Vòng đời socket server: bind/listen/accept

    Vòng đời socket phía server

    Một socket server đi qua các trạng thái theo thứ tự bắt buộc: CREATED → BOUND → LISTENING → ACCEPTING

    tương ứng các lời gọi socket(), bind(), listen(), accept(). Mỗi lời gọi chỉ hợp lệ nếu socket đang ở đúng trạng thái trước đó.

    Cho trạng thái hiện tại và một lời gọi, in trạng thái mới nếu hợp lệ, ngược lại in ERROR.

    Trạng thái Lời gọi hợp lệ Trạng thái mới
    CREATED bind BOUND
    BOUND listen LISTENING
    LISTENING accept ACCEPTING

    Ví dụ

    Vào: CREATED bind → BOUND.

    • Định dạng đầu vào:

      Một dòng: <trạng_thái> <lời_gọi>.

    • Ràng buộc đầu vào:

      Trạng thái thuộc {CREATED,BOUND,LISTENING,ACCEPTING}; lời gọi thuộc {bind,listen,accept}.

    • Định dạng đầu ra:

      Một dòng: trạng thái mới hoặc ERROR.

    Ví dụ:

    Đầu vào:

    CREATED bind
    

    Đầu ra:

    BOUND

    Giải thích:

    Từ CREATED, bind() hợp lệ, chuyển sang BOUND.

    Đang tải editor...