Ok hãy bắt đầu lại từ đầu. Tôi không biết bạn đang làm gì và làm thế nào nhưng khi thực hiện với mạng, bạn phải thử mô hình REACTOR .
Về cơ bản lò phản ứng là một cách để tránh việc sử dụng các luồng hoặc để bảo vệ nó trong đó một tác vụ luồng được tách rời hơn bởi lõi.
Trung tâm của lò phản ứng là chức năng chọn : bạn đăng ký các nguồn sự kiện của mình và yêu cầu chọn trở lại khi có điều gì đó xảy ra với một trong những nguồn đó .
Khi có thứ gì đó xuất hiện, vòng lặp chính của lò phản ứng chỉ đơn giản là tìm thấy Cái gì được nối với Nguồn nào phản ứng bằng cách tạo Sự kiện và gửi sự kiện này đến các đối tượng quan tâm đến các loại sự kiện đó.
Tôi không phải là Chuyên gia Java nhưng tôi biết rằng bạn có thể thiết lập ổ cắm (thậm chí cả UDP) và bạn có thể đặt chúng là không chặn. Cùng với whit này, tôi biết có một lớp gọi là Selector trong gói có tên là NIO. Những thứ đó đồng tình để xác định một cơ sở I / O đa kênh, không chặn
Tất cả những gì bạn cần chỉ đơn giản là thiết lập hai kênh UDP: một để nghe máy chủ và kênh kia để nói chuyện với máy chủ; đăng ký nghe một cho lò phản ứng và tích hợp bước phản ứng của lò phản ứng vào vòng lặp chính của bạn.
Hãy xem xét rằng cách tiếp cận này cho phép bạn kết nối đồng thời với các kênh khác nhau để bạn có thể xem xét để phát triển một trò chơi ngang hàng (không bị tắc nghẽn máy chủ và thiết kế phân tán ... nghe có vẻ hay!)
PS
Xin lưu ý rằng nếu bạn đang sử dụng một số loại GUI / cơ sở GUI, có lẽ bạn đã sử dụng Lò phản ứng ...