Tôi vẫn quen với Indy, là hệ thống ổ cắm đa luồng với khả năng rộng lớn. Một trong những điều lớn tôi đã thấy là làm thế nào một ổ cắm máy chủ có thể có một số ràng buộc khác nhau. Ví dụ, bạn có thể có 3 bindings cho 3 cổng trên cùng một địa chỉ IP. Tôi đang sử dụng Indy 10 trên Delphi XE2.Sử dụng nhiều ràng buộc của Indy Server làm ổ cắm riêng biệt?
Tôi đang tái xây dựng một hệ thống cũ của tôi trong đó sử dụng cái cũ lỗi thời TServerSocket
và TClientSocket
thành phần từ ScktComps
và tái làm nó với Indy TIdTCPServer
và TIdTCPClient
. Hệ thống cũ thực sự bao gồm 3 cổng máy chủ/máy khách hoàn toàn khác nhau trên mỗi đầu, mỗi socket phục vụ một mục đích riêng biệt, và làm việc cùng nhau - tương tự như cách FTP sử dụng một socket cho dữ liệu nhị phân và socket khác cho các lệnh.
Có thể bắt chước ba ổ cắm máy chủ/máy khách riêng biệt trong cùng một thành phần bằng cách sử dụng các ràng buộc này không? Nó sẽ là tuyệt vời nếu tôi có thể tuyên bố chỉ một ổ cắm máy chủ với 3 cổng bị ràng buộc, và giống nhau trên máy khách, kết nối với 3 cổng khác nhau trên máy chủ. Tất cả những gì tôi muốn làm là loại bỏ sự cần thiết phải tạo ra 3 thành phần máy chủ/máy khách riêng biệt và kết hợp chúng thành một.
Awesome, chỉ tự hỏi là mỗi cổng sử dụng thread riêng của mình hoặc có lẽ hầu hết tất cả 3 trong thread bối cảnh tương tự? –
Mỗi mục trong bộ sưu tập 'Bindings' chạy trong chuỗi riêng của nó chấp nhận các kết nối gửi đến trên cổng tương ứng của nó. Mỗi kết nối máy khách được chấp nhận sau đó cũng chạy trong chuỗi riêng của nó. Vì vậy, nếu bạn có 3 mục 'Bindings' và 3 máy khách kết nối, đó là 6 luồng đang chạy. –
Hoàn hảo, đó là chính xác những gì tôi muốn. –