Ver Mensaje Individual
  #3 (permalink)  
Antiguo 03/12/2012, 21:43
Avatar de SPAWN3000
SPAWN3000
 
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 2 meses
Puntos: 15
Respuesta: Winsock y .NET ...fk!!

Hi!!

Muy agradecido por la respuesta... Pero debo contar que lo logre hace unas cuantas horas, aunque no era lo que esperaba . Pero ya el tiempo no da espacio para mas(asi que trabajare estas noches y luego dare los detalles)... Solo anticipo que al final hubo que usar viejas librerias e incorporarlas como referencias al servidor .NET(Horrible). internamente se crea una funcion de retrollamada o (callback) la cual a su vez recibe como parametro e implementa la función de socket(que se alimenta de las Dll desaconcejadas por el mismo Microsoft), se establece un monitor para que en cada conexión entrante invoque la función creando un nuevo sock y evitar el bloqueo para multiples conexiónes(metodo asincrónico)...delegando la administración de subprocesos al frameWork. Cada instancia recibe un número y se adiciona a una colección con lo que cada cierre de conexión detectado se debe descargar de memoria y liberar el ID para una posible conexión, si hay sesiones libres los se toman de la lista de IDs liberados, si no se toman de la lista incrementable....pero es algo un poco mas largo de explicar.

Mas o menos asi(El lio era poder determinar cual de los dos tipos de conexiónes es la que debe implementar para determinada session)- Las clases .NET o las DLL de Vb6:

USUARIOS: TCP/IP HOST
----------------------------------------- ----------------------------------------
Conexión 1:------|>Winsock(vb6)
Conexión 2:------|>Winsock(vb6) (.Dat file)
Conexión 3:------|----------------------------------------->Servidor(itextsharp) (Threads).
Conexión 4:------|>Vb.net(Sock) |
Conexión 5:------|>Vb.net(Sock) |
^
| DOC TO PDF(Templates)
| Upload/Download
|
Sybase(DB) - Información del banco
(extracción de datos a archivo plano).

El usuario diseña la plantilla en word o Excel, incluye marcas o campos y la comparte en el servidor, el cliente extrae la inforamción de la base de datos y general un archivo plano que se envía al servidor; el servidor recibe el archivo plano con marcas e información a sustituir, estas marcas se sustituyen en cada campo de la plantilla PDF. y se genera una carpeta si no existe para el usuario donde se alamacena el reporte...El reporte queda disponible en la intranet para descarga desde una página web. Asi a groso modo.

_ inicialmente se penso en que el cliente alimentara una tabla con un id_proceso y cod_usuario, table que seria alimentada por el stored procedure(1....n)...pero a futuro esto no sería muy flexible ya que ocasionalmente la tabla podria necesitar uno que otro alter, asi que se define por archivo plano .DAT.

Algo asi, saludos y mil gracias.

Comparto un ejemplo que me sirvio de apoyo:
http://forum.codecall.net/topic/5430...#axzz2DTssAUrJ