Es gibt prinzipiell keinen Grund, nicht in demselben Programm eine (
Indy-)Client- und eine Server-Komponente zu verwenden. Allerdings brauchst Du das für diesen Anwendungsfall nicht, denn wenn die Verbindung einmal hergestellt ist, kann man darüber Daten in beide Richtungen schicken.
Falls mal mehr als zwei Programme miteinander kommunizieren sollen, bietet es sich aber eher an, dass ein Server die Verbindung zwischen allen herstellt.
Wobei: Man kann das natürlich auch auf andere Weise lösen, z.B. dass man die Nachrichten über einen File-Share austauscht. Das ist deutlich simpler.
Oder man macht es wie DeltaChat und verwendet E-Mail als Transportprotokoll.
Es kommt halt immer auf die konkreten Anforderungen an:
- Sollen sich die Programme automatisch finden?
- Wie sicher soll die Verbindung sein? (Anmeldung bzw. Tranmsportverschlüsselung)
- Geht es nur um's LAN oder soll die Verbindung über's Internet funktionieren?