Todavía me estoy acostumbrando a Indy, ya que es un sistema de socket de múltiples hilos con grandes capacidades. Una de las cosas más importantes que he visto es cómo un servidor de conexión puede tener una serie de enlaces diferentes. Por ejemplo, podría tener 3 enlaces para 3 puertos en la misma dirección IP. Estoy usando Indy 10 en Delphi XE2.¿Utiliza los enlaces múltiples de Indy Server como sockets separados?
Estoy re-construcción de un sistema antiguo de la mina que utiliza los TServerSocket
pasado de moda y TClientSocket
componentes de ScktComps
y volver a hacerlo con Indy TIdTCPServer
y TIdTCPClient
. El antiguo sistema en realidad consiste en 3 sockets de servidor/cliente completamente diferentes en cada extremo, cada socket tiene un propósito distinto y funciona en conjunto, similar a como FTP usa un socket para datos binarios y el otro socket para comandos.
¿Es posible imitar tres sockets de servidor/cliente separados dentro del mismo componente utilizando estos enlaces? Sería genial si pudiera declarar solo un socket de servidor con 3 puertos enlazados, y lo mismo en el cliente, conectado a 3 puertos diferentes en el servidor. Todo lo que me gustaría hacer es eliminar la necesidad de crear 3 componentes de socket/servidor separados y combinarlos en uno solo.
impresionante, preguntando cada puerto está utilizando su propio hilo, o más probablemente todos 3 en el mismo hilo contexto? –
Cada entrada en la colección 'Bindings' se ejecuta en su propio hilo aceptando las conexiones entrantes en su puerto respectivo. Cada conexión de cliente aceptada se ejecuta también en su propio hilo. Por lo tanto, si tiene 3 entradas 'Vinculaciones' y 3 clientes conectados, es decir, 6 hilos en ejecución. –
Perfecto, eso es exactamente lo que quería. –