Я все еще привык к Indy, будучи многопоточной системой сокета с огромными возможностями. Одна из больших вещей, которые я видел, - это то, как серверный сокет может иметь несколько разных привязок. Например, у вас может быть 3 привязки для 3 портов на одном и том же IP-адресе. Я использую Indy 10 на Delphi XE2.Использование нескольких привязок сервера Indy в виде отдельных сокетов?
Я заново строить старую систему шахты, которая использует старомодные TServerSocket
и TClientSocket
компоненты из ScktComps
и повторно делать это с Инди TIdTCPServer
и TIdTCPClient
. Старая система на самом деле состоит из 3 совершенно разных серверных/клиентских сокетов на каждом конце, каждый сокет, предназначенный для определенной цели, и работает вместе - подобно тому, как FTP использует один сокет для двоичных данных и другой сокет для команд.
Возможно ли имитировать три отдельных гнезда сервера/клиента в одном компоненте с помощью этих привязок? Было бы здорово, если бы я мог объявить только один серверный сокет с 3 связанными портами и тот же на клиенте, подключенный к 3 различным портам на сервере. Все, что я хотел бы сделать, это исключить необходимость создания 3 отдельных компонентов сокета для сервера/клиента и объединить их в один.
Awesome, просто интересно, это каждый порт, используя свой собственный поток или, скорее всего, все 3 в том же контексте потока? –
Каждая запись в коллекции 'Bindings' работает в своем потоке, принимая входящие соединения на соответствующем порту. Каждое принятое клиентское соединение затем запускается также в своем потоке. Итак, если у вас есть 3 'Bindings' записи и 3 подключенных клиента, то есть 6 потоков. –
Отлично, это именно то, что я хотел. –