Visual Basic - Un arreglo (array) de DLLs ¿?

Life is soft - evento anual de software empresarial
 
Vista:

Un arreglo (array) de DLLs ¿?

Publicado por Esteban (1144 intervenciones) el 22/03/2004 08:04:30
Tengo una intriga con respecto a una DLL que encontré, se trata de una aplicación que usa actualmente el OCX de Winsock, sin embargo, me gustaría pasar de usar ese componente a la DLL, lo que ocurre es que la aplicación servidor va construyendo un arreglo por cada conexión recibida, y ésto a su vez va ejecutando los eventos según el subíndice del arreglo de Sockets.

Con la DLL cómo puedo hacer eso, donde yo llame a un nodo como CSocket(0), CSocket(1), etc., y más aún que cuando llegue la solicitud de conexión me cree un socket nuevo y que todos los eventos del nodo 0 solo se ejecuten como nodo 0. Esto es lo que no podido hacer todavía.

En las aplicaciones cliente como solo requiere de un solo socket no tengo problemas, pero el servidor me da problemas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Un arreglo (array) de DLLs ¿?

Publicado por Rul (7 intervenciones) el 22/03/2004 12:06:13
Este codigo te va creando sockets por cada conexion que te llegue.
los eventos para cada conexion los tratas igual que si fuera para uno solo pero en los parametros del evento agregas el Index.
SUERTE.

Private Sub wsListen_ConnectionRequest(ByVal requestID As Long)
'establecer nuevo elemento winsock y aceptar la conexion
IndexAux = FindOpenWinsock
wsArray(IndexAux).Accept requestID

End Sub

Private Function FindOpenWinsock()
Static LocalPorts As Integer
Dim X As Long
For X = 0 To wsArray.UBound
If wsArray(X).State = 0 Then
FindOpenWinsock = X
Exit Function
End If
Next X
Load wsArray(wsArray.UBound + 1)
LocalPorts = LocalPorts + 1
wsArray(wsArray.UBound).LocalPort = wsArray(wsArray.UBound).LocalPort + LocalPorts
'wsArray(wsArray.UBound).LocalPort = 0
FindOpenWinsock = wsArray.UBound
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Un arreglo (array) de DLLs, DLL, DLL, DLL

Publicado por Esteban (1144 intervenciones) el 23/03/2004 08:23:17
Compañero, ya ese código lo tomé y lo modifiqué a mi conveniencia, ahora este código lo necesito para utilizarlo con arreglos de DLL (referencias) no como un componente OCX del Winsock.

El Winsock es muy simple de programar si lo comparamos a la programación de una dll, en especial cuando ésta la necesito utilizar como un arreglo, de forma que pueda hacer lo que el código que me enviaron hace.

Para la dll ya bajé el código y la tengo compilada, además de estar ya referenciada en los programas cliente, pero no para los servidores.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Un arreglo (array) de DLLs ¿?

Publicado por go†hic biT (15 intervenciones) el 24/03/2004 01:28:52
¿ arreglo de DLLs ?, no te entiendo bien, ya me perdiste :|

¿ quieres usar la DLL de windows para manejar los sockets ?
la funcion socket crea un socket nuevo, indentificas cada socket por su handle, 4 bytes, 32 bits, puedes usar un array de longs.
puedes usar nonblocking socket (son mejores para mi), una forma de recibir los eventos es que windows te enviara un mensaje a tu ventana, y ahi tienes que ver por errores que tipo de evento es etc.

go†hic biT
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Está difícil el tema

Publicado por Esteban (1144 intervenciones) el 24/03/2004 05:16:21
Este tema lo había venido buscando hace más de 6 meses, pero hasta ahora fue que volví a tomar el tema.

Digamos esto, puedes tener arreglos de componentes, digamos text1(0), text1(1), text1(2), espero entiendas. Cada text1(indice) es único, pero comparten código, por ejemplo cuando se ejecuta un evento "change", debes validar cuál de los componentes fue quien disparó el evento o sea validar el "index".

Esto no lo he visto para una dll, donde puedes declarar una variable miDll que pueda ser a su vez un arreglo de objetos, puedes hacer esto miDll(largo) as object, pero no es la idea, ya que debo ir nodo por nodo, y cada uno es un objeto pero no comparten eventos.

Difícil verdad?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Está difícil el tema

Publicado por go†hic biT (1 intervención) el 24/03/2004 20:38:46
¿ que quieres usar una clase que esta dentro de una DLL COM ? y ¿ despues que ?

o_0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Está difícil el tema

Publicado por Esteban (1144 intervenciones) el 26/03/2004 04:36:58
Sí eso mismo, cómo es que hasta ahora captas.

Desde el inicio pregunté sobre usar un componente del tipo DLL COM, ya que tengo el componente OCX.

He programado hasta DCOMs pero nunca haciendo lo que se podría hacer, porque otra es limitar las conexiones, o sea, tener solo 10, 20 o más instancias, fijas, que eso tampoco es la idea.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar