2008-09-22 28 views

Trả lời

1

Từ docs:

Một giá trị cho việc tồn đọng của SOMAXCONN là một hằng số đặc biệt mà chỉ thị các nhà cung cấp dịch vụ cơ bản chịu trách nhiệm về ổ cắm s để thiết lập chiều dài của hàng đợi đang chờ các kết nối đến một giá trị hợp lý tối đa .

+41

Câu trả lời khủng khiếp. "Giá trị hợp lý" như thế nào? – Nyerguds

+6

Tôi phải đồng ý, điều này không trả lời được câu hỏi nào cả. – spuriousdata

+0

Tại sao pseudoanswer này được chấp nhận? –

31

Có câu trả lời rất dài cho điều này trong Winsock Programmer's FAQ. Nó chi tiết các thiết lập tiêu chuẩn, và các tính năng backlog năng động được thêm vào trong một hotfix để NT 4.0.

+1

Câu trả lời tuyệt vời trong Câu hỏi thường gặp đó; cám ơn vì đã chia sẻ. Được đề xuất. –

+0

Điều đó thực sự đã giúp tôi. Cảm ơn. – Nyerguds

4

Tôi thứ hai sử dụng SOMAXCONN, trừ khi bạn có lý do cụ thể để sử dụng hàng đợi ngắn.

Hãy nhớ rằng nếu không có chỗ trong hàng đợi cho một kết nối mới, sẽ không có RST nào được gửi, cho phép máy khách tự động tiếp tục cố gắng kết nối bằng cách truyền lại SYN.

Ngoài ra, đối số tồn đọng có thể có ý nghĩa khác nhau trong các triển khai ổ cắm khác nhau.

  • Trong hầu hết nó có nghĩa là kích thước của hàng đợi kết nối nửa mở, trong một số nghĩa là kích thước của hàng đợi kết nối đã hoàn thành.
  • Trong nhiều lần triển khai, đối số tồn đọng sẽ nhân lên để mang lại độ dài hàng đợi khác.
  • Nếu giá trị được chỉ định quá lớn, tất cả các triển khai sẽ âm thầm cắt bớt giá trị thành độ dài hàng đợi tối đa.
-2

Là cảnh báo cho bất kỳ ai sử dụng boost asio, giá trị SOMAXCONN được sử dụng làm tăng 5.

+0

Có thể tăng cường truy vấn hệ điều hành cho giá trị này không? Câu hỏi thường gặp được liên kết trong câu trả lời khác cho thấy rằng 5 là số tiền tối đa thực sự trên ít nhất một số hệ điều hành. –

+0

@romkyns Trên ít nhất một số phiên bản Windows đã tồn tại vào khoảng năm 1992. – EJP

Các vấn đề liên quan