Actualmente tengo una aplicación muy parecida a la tuya, que lanza comandos y programas. Ese error me ocurrío y lo solucione añadiendo un componente de la paleta indy llamado TClientDataThread, que gestiona en un thread las entradas de la conexión cliente. Además hay limitaciones:
- Si inicias un servicio, y quieres que un cliente lanza una operación que sea un objeto VCL te dará una excepción. Nunca supe el porque. Pero lo solucione creando otra aplicacion y realizando un shellexecute.
Ej:
Un cliente conectado a tu servidor lanza un comando que abre un form de tu aplicación. Da un exception. ¿?.
Ten 2 aplicaciones, 1 : Controlador de red, 2 :Gui o operacionales y te funcionará.
Aunque la mejor opción es crear un servicio en windows, con delphi hay ejemplos y le marcas que interactue con el escritorio y va todo en uno.
Saludos y buen fin de semana.
|