Hola amigos, tengo un pequeño problemota.
Les cuento.
Hice un programa de administración de laboratorios del centro de cómputo de mi escuela.
El cual está compuesto por:
- Servidor: Registra automáticamente todos los accesos a cada computadora.
- Cliente para administrador: Manda órdenes al servidor de que apague, desbloquee/bloquee, mande mensajes a todas las pcs por laboratorio.
- Cliente: Bloquea cada computadora para que no pueda ser usada sin registrarse un alumno.
Bueno, el problema está en la aplicación cliente para administradores, porque esa aplicación es la que me muestra los reportes. Es decir esta aplicación se conecta con la aplicación servidor y le pide que le mande todos los registros en determinada fecha. Cuando el servidor recibe esa orden, hace la búsqueda y guarda los datos en un MSflexgrid y después los manda linea por linea a la aplicación cliente para administradores, pero resulta que para que me los mande correctamente debo poner un tiempo de retardo muy grande. Les pongo algo de código:
-   
-   
-   If Left(datos, 15) = "/dame_reporte1:" Then 
-     tabla.Clear 
-     z = Len(datos) - 15 
-     aux = Right(datos, z) 
-     c = 1 
-   
-       While (Mid(aux, c, 1) <> ",") 
-         palabra = palabra & Mid(aux, c, 1) 
-         c = c + 1 
-       Wend 
-      
-       anio.Text = palabra 
-      
-       palabra = "" 
-       c = c + 1 
-      
-       While (Mid(aux, c, 1) <> ",") 
-         palabra = palabra & Mid(aux, c, 1) 
-         c = c + 1 
-       Wend 
-        
-       If palabra = "ENERO - JULIO" Then 
-         semestre.Text = "1" 
-       End If 
-       If palabra = "AGOSTO - DICIEMBRE" Then 
-         semestre.Text = "2" 
-       End If 
-      
-       palabra = "" 
-       c = c + 1 
-      
-       While (Mid(aux, c, 1) <> ",") 
-         palabra = palabra & Mid(aux, c, 1) 
-         c = c + 1 
-       Wend 
-      
-       laboratorio.Text = palabra 
-      
-       palabra = "" 
-       c = c + 1 
-      
-       While (Mid(aux, c, 1) <> ";") 
-         palabra = palabra & Mid(aux, c, 1) 
-         c = c + 1 
-       Wend 
-        
-       carreras.Refresh 
-       enc = 0 
-       While Not (carreras.Recordset.EOF) And enc = 0 
-         If carreras.Recordset.nombre_materia = palabra Then 
-           enc = 1 
-           carrera.Text = carreras.Recordset.clave_materia 
-         End If 
-         carreras.Recordset.MoveNext 
-       Wend 
-      
- '  For c = 1 To 30 
- '    tabla.TextMatrix(c, 2) = "" 
- '    tabla.TextMatrix(c, 3) = "" 
- '  Next 
-    
-   Command2_Click  ' guarda los datos en el MSflexgrid llamado tabla 
-    
-   If Winsock1(Index).State = 7 Then 
-     c = 0 
-     While c < tabla.Rows 
-       Winsock1(Index).SendData "/envio_reporte1:" & c & "," & tabla.TextMatrix(c, 0) & "," & tabla.TextMatrix(c, 1) & "," & tabla.TextMatrix(c, 2) & "," & tabla.TextMatrix(c, 3) & ";" 
-       Delay (2) 
-       c = c + 1 
-     Wend 
-   End If 
-   
-   End If 
-   
-   
-   
Como se habrán dado cuenta utilizo el control winsock.
En este código tiene un tiempo (delay) de 2, funciona cuando corro el cliente para administradores en la misma máquina donde está el servidor, pero si lo hago desde otra tengo que poner un tiempo (delay) de 20, el cual tarda una eternidad en mandarme cerca 30 lineas, si no lo hago así, me llegan los datos desordenados.
Espero pudieran decirme como hacer para que en menos tiempo me mande los datos. De antemano gracias por responderme.