FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
DLL y TCPClient (o ClientSocket)
Saludos cordiales a todos,
Desde hace algún tiempo me he interesado por la escritura de programas sin GUI, con Delphi (el IDE al que ya estoy acostumbrado), sin embargo lo encuentro un poco difícil para algunas cosas, debido a mi inexperiencia en el campo. Sucede que quiero escribir un DLL que trabaje en cierta forma como una aplicación, que cuando la ejecute con rundll32 ejemplo.dll,DllMain se mantenga abierta y que responda a las conexiones con los objetos correspondientes a los cuales les asigno comandos. Yo puedo lograr esto perfectamente para un ejecutable, pero no para un DLL, y he aquí mi duda. Tengo el siguiente código:
En el DllMain intenté hacer como una especie de loop, para que interpretara esos mensajes que yo le enviara por la otra aplicación. Sin embargo, justamente cuando cierro la otra aplicación, que el ShowMessage hace efecto. ¿Alguna idea? (Debería hacer efecto cuando yo envíe el comando) PD: Creo que se podría complicar con los componentes Indy, y por eso no los empleo. Por eso tengo en cierta forma mi propio parser de comandos sencillo y "buggy". PD2: Me gustaría que me ayudasen ya sea con TCPClient o ClientSocket, realmente no tengo problemas en usar alguno de los dos (aunque me manejo más con ClientSocket).
__________________
Aprendiz de Embarcadero RAD Studio... Última edición por HombreGordo fecha: 25-04-2010 a las 11:10:23. |
#2
|
||||
|
||||
Me parece que el problema lo tienes en la otra aplicación porque Receiveln() se ejecuta hasta que aparece un retorno de carro (o la conexión se cierra).
Pero el código que has puesto me hace pensar que lo que quieres hacer es que esta DLL sea un servidor, no un cliente, entonces deberías usar un componente servidor TCP. |
#3
|
||||
|
||||
Gracias por su ayuda, Ud. tiene la razón jejej, es que como Ud. dice, Receiveln se ejecuta cuando encuentra un final de línea, me dí cuenta de cuál final de línea era ese, cuando ví que dice const eol: String = #$D#$A entonces ahí supe que retorno del carro debía enviar (estaba enviando #13+#10 y por eso no se ejecutaba).
__________________
Aprendiz de Embarcadero RAD Studio... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
TcpClient, TCPServer e Hilos | Joacko | Internet | 3 | 27-09-2010 19:04:56 |
TcpClient y TcpServer | Caro | OOP | 2 | 01-10-2008 19:32:34 |
Incluir TCPClient en DLL | Lambda | Internet | 0 | 03-07-2007 21:59:17 |
tcpserver y tcpclient | ajgesino | Internet | 2 | 23-01-2005 19:16:35 |
txpserver y tcpclient en indy | VIRU | Internet | 5 | 10-05-2003 06:09:09 |
|