Autor
|
Tema: Problemas con dataarrival (Leído 5,497 veces)
|
50l3r
Desconectado
Mensajes: 784
Solo se que se algo pero no me acuerdo
|
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
|
|
|
En línea
|
|
|
|
seba123neo
|
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.
|
|
|
En línea
|
|
|
|
YST
Desconectado
Mensajes: 965
I'm you
|
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: %)%
y luego comparas si el primer datos es "Datos" agregas los demas datos a su lugar correspondiente
|
|
|
En línea
|
Yo le enseñe a Kayser a usar objetos en ASM
|
|
|
el_c0c0
Desconectado
Mensajes: 307
|
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: %)%
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
|
|
|
En línea
|
'- coco "Te voy a romper el orto"- Las hemorroides
|
|
|
50l3r
Desconectado
Mensajes: 784
Solo se que se algo pero no me acuerdo
|
este es mi codigo por ahora, este es el servidor: 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? 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: private sub wsk_dataarrival(byval bytestotal as long) 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)
ahi, si la ip fuese el primer dato cortado, me lo daria?
|
|
« Última modificación: 14 Mayo 2009, 15:14 pm por 50l3r »
|
En línea
|
|
|
|
50l3r
Desconectado
Mensajes: 784
Solo se que se algo pero no me acuerdo
|
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: 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
|
|
|
En línea
|
|
|
|
locot3
Desconectado
Mensajes: 74
|
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 !!
|
|
|
En línea
|
|
|
|
50l3r
Desconectado
Mensajes: 784
Solo se que se algo pero no me acuerdo
|
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: 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: 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:
|
|
|
En línea
|
|
|
|
|
50l3r
Desconectado
Mensajes: 784
Solo se que se algo pero no me acuerdo
|
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 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
|
|
|
En línea
|
|
|
|
|
|