Từ những gì tôi đọc về Java NIO và SocketChannels [Server] không chặn, có thể viết một máy chủ TCP duy trì một số kết nối chỉ sử dụng một luồng - tôi sẽ tạo một Bộ chọn chờ tất cả các kênh liên quan trong vòng lặp của máy chủ.Ổ cắm Java: Tôi có thể viết một máy chủ TCP với một luồng không?
Điều đó đúng hay tôi thiếu một số chi tiết quan trọng? Tôi gặp phải vấn đề gì?
(Bối cảnh:.. Các giao thức TCP sẽ cho một trò chơi nhiều người chơi nhỏ, vì vậy tối đa 10-20 kết nối đồng thời tin nhắn sẽ được gửi về mỗi vài giây.)
Vâng ... có vẻ rất quen thuộc với lập trình xoay .. nơi bạn có một chuỗi gửi sự kiện chính, nhưng trong trường hợp máy chủ, tên thay vì là "Yêu cầu gửi chủ đề". Và đó cũng là thực hành tốt để ủy thác cho người khác chủ đề những sự kiện/requets đó đòi hỏi một số chế biến mà có thể mất nhiều hơn một giây để giải phóng các chủ đề bỏ phiếu. Có ý nghĩa guys hay tôi chỉ nói hạt? – Victor
Vâng, những gì bạn nói có ý nghĩa. Những gì bạn mô tả là điển hình cho bộ xử lý sự kiện. Yêu cầu được xử lý dưới dạng sự kiện và kênh mà dữ liệu có sẵn hoặc sẽ được ghi vào được xử lý bởi một chuỗi khác với từ người chấp nhận. Lưu ý rằng với mô hình I/O ban đầu, người ta thường giả định rằng một máy chủ sinh ra một luồng mới cho mỗi máy khách, nhưng mô hình dựa trên sự kiện này với một số luồng cố định hữu dụng như nhau. – Pindatjuh