Giả sử ổ cắm TCP trên máy chủ lưu trữ cục bộ Linux đang ở trạng thái kết nối với máy chủ từ xa. Máy chủ lưu trữ cục bộ đang sử dụng epoll_wait để được thông báo về các sự kiện trên socket với máy chủ từ xa.Sao chép và tắt máy 1 chiều từ xa
Nếu máy chủ từ xa đã gọi:
shutdown(s,SHUT_WR);
trên ổ cắm kết nối của nó để chỉ nó được thực hiện truyền, những gì sự kiện (s) sẽ epoll_wait lợi nhuận trên các máy chủ địa phương cho socket của nó?
Tôi giả sử EPOLLIN sẽ luôn được trả lại và cuộc gọi recv tiếp theo sẽ trả về 0 để cho biết phía từ xa đã kết thúc truyền.
Điều gì về EPOLLHUP hoặc EPOLLRDHUP? (Và sự khác nhau giữa hai sự kiện này) là gì?
Hoặc thậm chí EPOLLERR?
Nếu máy chủ từ xa gọi "đóng" thay vì "tắt", bạn có trả lời cho bất kỳ thay đổi nào ở trên không?
Tôi có thêm câu hỏi về hành vi ở đây, vì vậy tôi đã đi sâu vào các tương tác này: https://medium.com/where-the-flamingcow-roams/down-the-epoll-rabbit-hole-5c0447cb6329 – flamingcow