Título: Problema cliente / servidor ; procesos del sistema Publicado por: dark_soul en 10 Mayo 2006, 22:32 pm Wenas , lo primero describire el programa ;en una aplicacion cliente / servidor . Quiero que en el server se listen todos los procesos del sistema y despues se envien al cliente y se copien en un list. Dejo el codigo a ver si me podeis decir que falla:
SERVER: Dim ListaProcesos As Object Dim ObjetoWMI As Object Private Sub Listar() Set ObjetoWMI = GetObject("winmgmts:") If IsNull(ObjetoWMI) = False Then Set ListaProcesos = ObjetoWMI.InstancesOf("win32_process") 'Recorremos toda las coleccion en lista de procesos y la añadimos al list For Each ProcesoACerrar In ListaProcesos List1.AddItem LCase$(ProcesoACerrar.Name) Next End If 'Eliminamos las variables de objeto Set ListaProcesos = Nothing Set ObjetoWMI = Nothing End Sub Private Sub Command1_Click() ws.SendData Text2.Text End Sub Private Sub Command2_Click() ws.SendData Text2 ' List1.AddItem Text2 End Sub Private Sub Command3_Click() List1.Clear Listar End Sub Private Sub Form_Load() ws.LocalPort = 1001 ws.Listen End Sub Private Sub ws_ConnectionRequest(ByVal requestID As Long) If ws.State <> sckClosed Then _ ws.Close ws.Accept requestID End Sub Private Sub ws_DataArrival(ByVal bytesTotal As Long) Dim datos As String ws.GetData datos Text1.Text = datos End Sub Y EN EL CLIENTE : Private Sub Command1_Click() On Error Resume Next ws.Connect End Sub Private Sub Command2_Click() On Error Resume Next ws.SendData Text2.Text End Sub Private Sub Form_Load() ws.RemoteHost = "127.0.0.1" ws.RemotePort = 1001 End Sub Private Sub ws_DataArrival(ByVal bytesTotal As Long) On Error Resume Next Dim datos As String ws.GetData datos Text1.Text = datos List1.AddItem datos End Sub El problema es que si mando una palabra solamente funciona bien , pero si listo los procesos en el server y le doy a enviar al cliente no funciona.. Alguien sabe que puede pasar ??? gracias de antemano salu2 Título: Re: Problema cliente / servidor ; procesos del sistema Publicado por: <--v1c1ous--> en 11 Mayo 2006, 04:48 am Buenas.
Solo por concejo: Lee la funcion antes de cuestionarte cuarquier cosa y entendela. hace una que otra prueba antes de cuestioanrte tambien, por ej logra listar los procesos en un listbox dentro del server y hacelo precionando f8, asi vas a ver como funciona y despues trata de pasarlos al cliente, si no lo logras, ahi cuentionate. Ahora te explico, al pedirle al server la lista nos interesa esta parte: Citar For Each ProcesoACerrar In ListaProcesos List1.AddItem LCase$(ProcesoACerrar.Name) Next Agrega al listbox los prosesos uno por uno hasta terminar, vos queres pasar cada uno de esos procesos listados a tu cliente. Facil, en cada vez que tu server liste un proceso lo sumas a un buffer y despues mandas todo junto a tu cliente ¿Como? SERVER: A la hora de listar cada proceso a su vez lo agregas a un buffer Citar buffer = buffer & Proceso & "|" CLIENTE:El cliente recibe los procesos delimitados por "|" y los va agregando al listbox Citar proceso() = Split(DATA,"|") For i = 0 to proceso listbox.additem proceso(i) next Sobreentiendo que sabes usas variables :) Saludos. |