Wciąż się przyzwyczajałem do Indy, będąc wielowątkowym systemem gniazd z ogromnymi możliwościami. Jedną z największych rzeczy, które widziałem, jest to, że gniazdo serwera może mieć wiele różnych powiązań. Na przykład możesz mieć 3 wiązania dla 3 portów na tym samym adresie IP. Używam Indy 10 na Delphi XE2.Używanie wielu wiązań Indy Server jako oddzielnych gniazd?
ja ponownie budynku starej kopalni system, który wykorzystuje staroświecki TServerSocket
i TClientSocket
komponenty z ScktComps
i ponownie robi to z Indy TIdTCPServer
i TIdTCPClient
. Stary system składa się właściwie z 3 zupełnie różnych gniazd serwera/klienta na każdym końcu, z każdego gniazda służącego do odrębnego celu i współpracującego - podobnie jak FTP używa jednego gniazda dla danych binarnych, a drugie dla poleceń.
Czy możliwe jest naśladowanie trzech oddzielnych gniazd serwera/klienta w ramach tego samego komponentu przy użyciu tych powiązań? Byłoby wspaniale, gdybym mógł zadeklarować tylko jedno gniazdo serwera z 3 połączonymi portami, i to samo na kliencie, podłączone do 3 różnych portów na serwerze. Wszystko, co chciałbym zrobić, to wyeliminowanie potrzeby tworzenia 3 oddzielnych komponentów gniazd serwera/klienta i łączenia ich w jedno.
Awesome, po prostu zastanawiasz się każdy port za pomocą własnego wątku lub najprawdopodobniej wszystkie 3 w tym samym wątku kontekstowego? –
Każdy wpis w kolekcji 'Wiązania' działa we własnym wątku przyjmującym połączenia przychodzące na odpowiednim porcie. Każde zaakceptowane połączenie klienta działa również we własnym wątku. Więc jeśli masz 3 wpisy 'Bindings' i 3 połączone klienty, to 6 wątków działa. –
Doskonały, dokładnie tego chciałem. –