Hola estoy tratando de hacer un explorador remoto y resulta que cuando quiero mandar archivos al server va todo ok pero cuando intento descargar del el tengo algunos problemas, si el archivo es menor de 500kb todo joya el archivo se recive pero si supera ese tamaño el archivo nunca llega. Lo estoy provando en mi maquina (127.0.0.1). No se si alguna vez a alguno le paso esto que lo comente asi me ayuda un poco el codigo que utilizo tanto para mandar archivos al server como para recivir es el mismo pero obviamente invertido(Bue yo me entiendo). aca se los pongo aver si encuentran si hay algo que no corresponde:
CLIENTE:
Private Sub ws_DataArrival(ByVal bytesTotal As Long)
'On Error Resume Next
Dim Data As String
ws.GetData Data
'------------------------------ ENVIO----------------------------------
If Left(Data, 8) = "SendFile" Then
Open Text1.Text For Binary As #1
Send = Space(LOF(1))
Get #1, , Send
Close #1
ws.SendData Send
End If
'--------------------------------RECIVIR-------------------------------
If Envio = True Then
DataFile = DataFile & Data
If Len(DataFile) = LenFile Then
Open nombre For Binary As #1
Put #1, , DataFile
Close #1
DataFile = ""
MsgBox "El Fichero se a Enviado Correctamente"
Envio = False
End If
End If
If Left(Data, 3) = "Tam" Then
dato = Split(Data, "|")
LenFile = dato(1)
Envio = True
ws.SendData "SendFile"
End If
SERVER:
Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim Data As String
ws.GetData Data
'----------------------------------RECIVE----------------------------------------
If Envio = True Then
DataFile = DataFile & Data
If Len(DataFile) = LenFile Then
Open Text1.Text For Binary As #1
Put #1, , DataFile
Close #1
DataFile = ""
MsgBox "El Fichero se a Enviado Correctamente"
Envio = False
End If
End If
If Left(Data, 7) = "archivo" Then
dato = Split(Data, "|")
LenFile = dato(1)
Namee = dato(2)
Text1.Text = "c:\" & Namee
Envio = True
ws.SendData "SendFile"
End If
'-----------------------------------ENVIA---------------------------------------
If Left(Data, 9) = "Descargar" Then
dato = Split(Data, "|")
directorioarchivo = dato(1)
ws.SendData "Tam" & "|" & FileLen(directorioarchivo)
End If
If Left(Data, 8) = "SendFile" Then
Open directorioarchivo For Binary As #1
Send = Space(LOF(1))
Get #1, , Send
Close #1
ws.SendData Send
End If
hola haber yo hice la prueba y no tuve ningún problema quizás te falto declarar alguna variable en el general , prova de nuevo como lo pongo yo con dos proyectos nuevos
Cliente1 Winsock nombre =Ws
3 commandbutton command1, command2, command3
1 Textbox1
1 CommonDialog1
CitarOption Explicit
Dim DataFile As String, LenFile As Long, Envio As Boolean, NombreDescarga As String, Send As String
Private Sub Command1_Click()
WS.Connect "127.0.0.1", 1000
End Sub
Private Sub Command2_Click()
NombreDescarga = "C:\" & Right(Text1, Len(Text1) - InStrRev(Text1, "\"))
WS.SendData "Descargar" & "|" & Text1.Text
End Sub
Private Sub Command3_Click()
On Error GoTo Salir
CommonDialog1.CancelError = True
CommonDialog1.ShowOpen
Text1 = CommonDialog1.FileName
Dim NombreEnvio As String
NombreEnvio = Right(Text1, Len(Text1) - InStrRev(Text1, "\"))
WS.SendData "archivo" & "|" & FileLen(Text1) & "|" & NombreEnvio
Exit Sub
Salir:
End Sub
Private Sub Form_Load()
'--------Cliente--------
Command1.Caption = "Conectar"
Command2.Caption = "Descargar"
Command3.Caption = "Subir al Servidor"
End Sub
Private Sub WS_Close()
WS.Close
Me.Caption = "Cliente Desconectado"
End Sub
Private Sub WS_Connect()
Me.Caption = "Cliente Conectado"
End Sub
Private Sub ws_DataArrival(ByVal bytesTotal As Long)
'On Error Resume Next
Dim Data As String
WS.GetData Data
'------------------------------ ENVIO----------------------------------
If Data = "SendFile" Then
Dim Send As String
Open Text1.Text For Binary As #1
Send = Space(LOF(1))
Get #1, , Send
Close #1
WS.SendData Send
End If
'--------------------------------RECIVIR-------------------------------
If Envio = True Then
DataFile = DataFile & Data
Me.Caption = "Recibiendo " & Len(DataFile) & " DE " & LenFile
If Len(DataFile) = LenFile Then
Open NombreDescarga For Binary As #1
Put #1, , DataFile
Close #1
DataFile = ""
MsgBox "El Fichero se a Enviado Correctamente y se guardo en " & NombreDescarga
Me.Caption = "Cliente Conectado"
Envio = False
End If
End If
If Left(Data, 3) = "Tam" Then
Dim dato As Variant
dato = Split(Data, "|")
LenFile = dato(1)
Envio = True
WS.SendData "SendFile"
End If
End Sub
Servidor1 Winsock nombre =Ws
1 Textbox1
Citar
Option Explicit
Dim directorioarchivo As String
Dim Send As String, DataFile As String, Namee As String, LenFile As Long, Envio As Boolean
Private Sub ws_ConnectionRequest(ByVal requestID As Long)
Ws.Close
Ws.Accept requestID
Me.Caption = "Servidor Conectado"
End Sub
Private Sub Form_Load()
'--------Servidor--------
Ws.LocalPort = 1000
Ws.Listen
End Sub
Private Sub Ws_Close()
Ws.Close
Ws.Listen
Me.Caption = "Servidor Desconectado"
End Sub
Private Sub Ws_Connect()
Me.Caption = "Servidor Conectado"
End Sub
Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim Data As String, Dato As Variant
Ws.GetData Data
'----------------------------------RECIVE----------------------------------------
If Envio = True Then
DataFile = DataFile & Data
Me.Caption = "Recibiendo " & Len(DataFile) & " DE " & LenFile
If Len(DataFile) = LenFile Then
Open Text1.Text For Binary As #1
Put #1, , DataFile
Close #1
DataFile = ""
MsgBox "El Fichero se a Recibido Correctamente y se guardo en" & Text1
Me.Caption = "Servidor Conectado"
Envio = False
End If
End If
If Left(Data, 7) = "archivo" Then
Dato = Split(Data, "|")
LenFile = Dato(1)
Text1.Text = "c:\" & Dato(2)
Envio = True
Ws.SendData "SendFile"
End If
'1-----------------------------------ENVIA---------------------------------------
If Left(Data, 9) = "Descargar" Then
Dato = Split(Data, "|")
directorioarchivo = Dato(1)
Ws.SendData "Tam" & "|" & FileLen(directorioarchivo)
End If
If Left(Data, 8) = "SendFile" Then
Open directorioarchivo For Binary As #1
Send = Space(LOF(1))
Get #1, , Send
Close #1
Ws.SendData Send
End If
End Sub
Saludos
Gracias por la respuesta el codigo tuyo me andubo, me fije un poco nomas y me gusto la idea de poner la transferencia arriva de la ventana, aunque por lo que vi basicamnte es igual, mañana me voy a fijar tranquilo y con paciencia. Uno de los problemas que tengo puede ser que yo estoy utilizando los componentes file, drive y dir, bue no se me fijo y cualquier cosa subo el codigo fuente y te fijas ahi mejor. Gracias :D
Estoy haciendo un pequeño manual de troyano desde 0 alomejor te sirve...
http://www.kizar.net/foro/index.php?topic=90.0
bueno ya que esta yo hice un explorador remoto hace un tiempo realmente lo hice con lo que savia hasta el momento pero bueno a veces aprendiendo uno se da cuenta cuantas cosas se pueden corregir y mejorar por ejemplo yo utilize otra forma para el envio de archivos
con lo cual me gusto mas de esta forma que vos usaste , tambien solo es balido para xp ya que usa GDIPluss para comprimir imagenes pero bien ya queda como esta jeje, fijate tiene muchas opciones
http://www.recursosvisualbasic.com.ar/htm/utilidades-codigo-fuente/explorador-remoto.htm
una versión un poco mas nueva (con la opcion de enviar comandos D.O.S
http://ar.geocities.com/leandroascierto/Explorador-Remoto.zip
Muchachos disculpen las molestias pero sigo sin lograr encontrar el error, ademas me parece que en teoria esta todo bien, ya no se que hacer hace mucho que estoy con esto y no logro nad por eso decidi suvirlo a ver si alguna persona se digna a ayudarme.
Citarbueno ya que esta yo hice un explorador remoto hace un tiempo realmente lo hice con lo que sabia hasta el momento pero bueno a veces aprendiendo uno se da cuenta cuantas cosas se pueden corregir y mejorar por ejemplo yo utilize otra forma para el envio de archivos
con lo cual me gusto mas de esta forma que vos usaste , tambien solo es balido para xp ya que usa GDIPluss para comprimir imagenes pero bien ya queda como esta jeje, fijate tiene muchas opciones
http://www.recursosvisualbasic.com.ar/htm/utilidades-codigo-fuente/explorador-remoto.htm
una versión un poco mas nueva (con la opcion de enviar comandos D.O.S
http://ar.geocities.com/leandroascierto/Explorador-Remoto.zip
Ya habia bajado tu explorador para ver si podia basarme para hacer el mio y me parecio demasiado complejo, me encanto la idea de la vista de los iconos en miniatura, intente deducir como lo hiciste pero no tuve exito. Si me podrias explicar brevemente como lo hiciste te lo agradeceria. Bueno no los molesto mas aca les dejo mi precario explorador con todos sus bugs que lo acompañan especialmente ese de no poder descargar archivos grandes.
Gracias de antemano.
http://rapidshare.com/files/4334491/File_Manager.rar