Título: Problemas con dataarrival Publicado por: 50l3r en 14 Mayo 2009, 00:14 am Veran, intento realizar un proyecto que recopile la mayor inforamcion posible del equipo remoto
estoy haciendo un server y un cliente quiero que,cada dato que me mande, ejemplo, la ip, nombre de host, sistema operativo, me coloque cada cosa en su correspondiente textbox, la ip en un lado, el hostname en otro...etc la cosa es que yo se coger los datos con el data arrival, pero como hago para que cada dato vaya a su textbox correspondiente? ya que todo llega de sopetón gracias, me ayudariais mucho si me lo dijeseis Título: Re: Problemas con dataarrival Publicado por: seba123neo en 14 Mayo 2009, 02:46 am me imagino que si envias todo junto como decis lo debes enviar con algun separador o algo...si lo envias con un separador despues hacer un Split()y mostras los datos del array en cada textbox...
saludos. Título: Re: Problemas con dataarrival Publicado por: YST en 14 Mayo 2009, 03:20 am Generalmente se envia de esta manera
Desde el programa ue esta infectando el pc mandas: Datos%)%NombrePC%)%Username ... y en el programa que controla divides con split , usando el separador: Código
y luego comparas si el primer datos es "Datos" agregas los demas datos a su lugar correspondiente Título: Re: Problemas con dataarrival Publicado por: el_c0c0 en 14 Mayo 2009, 05:42 am Generalmente se envia de esta manera Desde el programa ue esta infectando el pc mandas: Datos%)%NombrePC%)%Username ... y en el programa que controla divides con split , usando el separador: Código
y luego comparas si el primer datos es "Datos" agregas los demas datos a su lugar correspondiente %)% es algo arbitrario, podes usar chr(0) tambien, o lo que se te cante! el tema es que no se repita y que sea jodido que aparezca en la data que envias (para diferencia bien entre data y separador) saludos Título: Re: Problemas con dataarrival Publicado por: 50l3r en 14 Mayo 2009, 11:48 am este es mi codigo por ahora, este es el servidor:
Código: Private Sub cdmescuchar_Click() wsk.Close wsk.Listen lblstatus.Caption = "Escuchando..." End Sub Private Sub cmdcerrar_Click() wsk.Close lblstatus.Caption = "Apagado" End Sub Private Sub Form_Load() wsk.LocalPort = 666 End Sub Private Sub wsk_connectionRequest(ByVal requestID As Long) If MsgBox(wsk.RemoteHostIP & "esta intentando conectarse", vbQuestion + vbYesNo, "Conexion entrante") = vbYes Then wsk.Close wsk.Accept requestID Else wsk.Close Call cmdescuchar_click End If End Sub Ahora que tendria que poner un evento, asi? Código: private Sub wsk_dataarrival(byval bytestotal as long) 'Aqui que tendria que poner? end sub lo que pasa es que, te llega la info con el delimitador %)% ok, luego usas split asi: Código: private sub wsk_dataarrival(byval bytestotal as long) ahi, si la ip fuese el primer dato cortado, me lo daria?dim datos as string Function Split( ByVal datos As String, Optional ByVal Delimiter As String = "%)%", Optional ByVal Limit As Integer = -1, Optional ByVal Compare As CompareMethod = CompareMethod.Binary ) As String() wsk.getdata datos(0) texip.text = datos(0) Título: Re: Problemas con dataarrival Publicado por: 50l3r en 14 Mayo 2009, 16:27 pm Bueno, excuso este doble post debido a que encontre la respuesta, asi ayudare mas a otras futuras dudas:
Para poder obtener los datos, necesitas separarlos, el cliente debe de mandar los datos con algun caracter separador, por ejemplo "--" de manera que los datos lleguen asi: dato1--dato2--dato3 luego con la funcion split(datos, "--") los separas y obtienes arrays, el primer dato es el array 0 y asi sucesivamente un ejemplo: Código: Private Sub wsk_dataarrival(ByVal bytestotal As Long) Dim datos As String Dim trozos() As String wsk.GetData datos trozos = Split(datos, "%)%") txt1 = trozos(0) txt2 = trozos(1) txt3 = trozos(2) txt4 = trozos(3) End Sub Título: Re: Problemas con dataarrival Publicado por: locot3 en 14 Mayo 2009, 16:33 pm Buenas mira yo tambien tengo un programita que "recopila" info de otras Pcs' heheeh, y bueno para hacer lo que tu quieres te doy un ejemplo bien facil mira cuando mandes los datos desde el server ( osea el nombre de la PC o todo lo que quieras mandar ) en el server create una variable String y dentro de esa variable junta todos los datos que quieras mandar ejemplo :
VarString = pcname & "+" & pcuser & "+" & pccpu ' y asi aumentas todo lo que quieras winsock1.datasend VarString eso va en el server cuando haces el DataSend , y en tu cliente cuando estas en el sector de DataArrival de tu winsock lo separas con el Split que ya te avian dicho antes winsock.dataarrival buffer divide=split(buffer,"+") ' ahi separa todo por el signo + q tu puedes cambiarlo por el q tu quieras divide(0) sera igual a pcname divide(1) sera igual a pcuser divide(2) sera igual a pccpu y asi espero me ayas entendido!! por cierto el signo "+" lo puedes cambiar por el que tu quieras yo usso siempre ese porque rara ves aparece por ahi ;) saludos y suerte !! Título: Re: Problemas con dataarrival Publicado por: 50l3r en 14 Mayo 2009, 17:41 pm si, ahora mismo uso este que me dijeron %)% que no creo que se use jeje
la informacion que me es mandada va desde el cliente al servidor por cierto, estoy intentando hacer esto creo en el cliente un filelist un drivelist y un dirlist y les conecto los 3, y luego intento mandarlos asi: Código: Private Sub Command1_Click() Dim datos As String datos = txthst & "%)%" & txtso & "%)%" & drv.Drive & "%)%" & Dir.Path & "%)%" & file.Path wsk.SendData datos End Sub luego despues en el servidor se reciben asi: Código: Private Sub wsk_dataarrival(ByVal bytestotal As Long) Dim datos As String Dim trozos() As String wsk.GetData datos trozos = Split(datos, "%)%") txthst = trozos(0) txtso = trozos(1) [b]drv.Drive = trozos(2) Dir.Path = trozos(3) File.Path = trozos(3)[/b] End Sub en el server he llamado a los objetos igual que en el cliente, y al asociarlos con los datos enviados del drv.drive, dir.path y file.path me pasa esto: (http://img8.imageshack.us/img8/7980/pathi.jpg) Título: Re: Problemas con dataarrival Publicado por: YST en 14 Mayo 2009, 19:39 pm El error sucede por que no existe la ruta que pones desde el server en el cliente
PD:por cierto leete un manual de una ves Título: Re: Problemas con dataarrival Publicado por: 50l3r en 14 Mayo 2009, 21:35 pm ya me lei el de aprenda vb como si estuviera en primero pero ni siquiera toca controles winsock
me estoy leyendo manuales de todos lados antes de preguntar, no creo que por que pregunte haga daño Citar El error sucede por que no existe la ruta que pones desde el server en el cliente aqui que te refieres, a que no hay un drivelist,dirlist y filelist con ese nombre? si,si lo hay, el error esta en otro lado, nose si te referiras a eso gracias por tu ayuda Título: Re: Problemas con dataarrival Publicado por: BlackZeroX en 15 Mayo 2009, 03:24 am si, ahora mismo uso este que me dijeron %)% que no creo que se use jeje la informacion que me es mandada va desde el cliente al servidor por cierto, estoy intentando hacer esto creo en el cliente un filelist un drivelist y un dirlist y les conecto los 3, y luego intento mandarlos asi: Código: Private Sub Command1_Click() Dim datos As String datos = txthst & "%)%" & txtso & "%)%" & drv.Drive & "%)%" & Dir.Path & "%)%" & file.Path wsk.SendData datos End Sub luego despues en el servidor se reciben asi: Código: Private Sub wsk_dataarrival(ByVal bytestotal As Long) Dim datos As String Dim trozos() As String wsk.GetData datos trozos = Split(datos, "%)%") txthst = trozos(0) txtso = trozos(1) [b]drv.Drive = trozos(2) Dir.Path = trozos(3) File.Path = trozos(3)[/b] End Sub en el server he llamado a los objetos igual que en el cliente, y al asociarlos con los datos enviados del drv.drive, dir.path y file.path me pasa esto: (http://img8.imageshack.us/img8/7980/pathi.jpg) prueba tu string enviado imprimelo y si va todo bien pasalo a un control no te hace daño avriguar error por ti mismo de vez en cuando si no todo lo contrario te auto-enriqueses en todo aspecto. P.D.: no digo que no preguntes, solo que intentes ver que datos realmente se estan enviando y resiviendo, no hagas todo de jalon haslo en partes y cuando cada parte este lista unelos asi es mas facil.¡!,... al ultimo deja la interface para que se vea bonita lo primero son los controles que interbienen, posteriormente sus acciones, entre otros, y por ultimo la interface bonita, si asi lo deseas (esto ultimo es solo un consejo). Título: Re: Problemas con dataarrival Publicado por: seba123neo en 15 Mayo 2009, 03:39 am si apredes a debuggerte vos mismo no preguntas mas(en serio) busca sobre ese termino que no creo que sepasa lo que significa ni como se hace...
Título: Re: Problemas con dataarrival Publicado por: 50l3r en 15 Mayo 2009, 12:07 pm ok, gracias, voy a averiguar el porque
hare lo que me has dicho blackzero+ lo imprimire de forma local en un textbox, luego de manera remota y despues si funciona bien, lo pasare a el control correspondiente, haber si me funciona sino debere pasar los path de directorios y ficheros del cliente a otro formato para poder enviarlos ya que me han dicho que los drivelist, dirlist y filelist no se pueden enviar es eso verdad? Título: Re: Problemas con dataarrival Publicado por: BlackZeroX en 15 Mayo 2009, 21:00 pm ok, gracias, voy a averiguar el porque hare lo que me has dicho blackzero+ lo imprimire de forma local en un textbox, luego de manera remota y despues si funciona bien, lo pasare a el control correspondiente, haber si me funciona sino debere pasar los path de directorios y ficheros del cliente a otro formato para poder enviarlos ya que me han dicho que los drivelist, dirlist y filelist no se pueden enviar es eso verdad? sus items si se pueden enviar es como si manejaras un listbox o listview por decir algunos arecido En este caso es practicamente lo mismo, realizas un bucle que pase TODOS los items de estos elementos a una variable tipo String (con su separacion entre cada uno de estos, ojo con eso) y ya posteriormente envias los datos, revisa la documentación de esos controles. De igual forma puedes quitar esas dependencias feas con codigo y alivianar dicho Programa, en ete foro ya estan dichos codigos solo hay que buscarlos Saludos, Dulces Lunas |