Autor
|
Tema: Archivos Grandes no se envian y pequeños si¡¡¡¡¡ Que honda?? (Leído 1,629 veces)
|
Badlands
Desconectado
Mensajes: 100
|
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
|
|
« Última modificación: 17 Noviembre 2006, 02:23 am por Badlands »
|
En línea
|
|
|
|
LeandroA
|
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 Option 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 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
|
|
|
En línea
|
|
|
|
Badlands
Desconectado
Mensajes: 100
|
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
|
|
|
En línea
|
|
|
|
|
|
Badlands
Desconectado
Mensajes: 100
|
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. 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
|
|
|
En línea
|
|
|
|
|
|