buenas e echo un programa para transferir archivos ente pc´s pero el problema es que salta error y no se porque no se si sera cosa del router o del programa... alguna idea para solucionarlo
si quieren mas info solo pregunten les doy todo lo que quieran.. incluido el source..
Gracias & Salu2
Pues seria util saber la clase de error que tira, o si muertras el code mucho mejor...
SAludos
Cita de: CL1O en 30 Noviembre 2008, 23:10 PM
o si muertras el code mucho mejor...
Option Explicit
Private Declare Function GetFileTitle _
Lib "comdlg32.dll" _
Alias "GetFileTitleA" ( _
ByVal lpszFile As String, _
ByVal lpszTitle As String, _
ByVal cbBuf As Integer) As Integer
Dim Flag As Boolean
Dim lBytes As Long
Dim lFileSize As Long
Private Sub Form_Load()
txtIP = "127.0.0.1"
txtIP.Enabled = False
txtPuerto = "3000"
txtPuerto.Enabled = False
txtArchivo.Enabled = False
cmdBuscar.Enabled = False
cmdEnviar.Enabled = False
cmdCambiar.Enabled = False
cmdConectar.Enabled = False
cmdEscuchar.Enabled = False
End Sub
Private Sub cmdSalir_Click()
End
End Sub
Private Sub cmdCliente_Click()
txtIP = "127.0.0.1"
txtIP.Enabled = False
txtPuerto = "3000"
txtPuerto.Enabled = False
txtArchivo = ""
txtArchivo.Enabled = True
cmdBuscar.Enabled = True
cmdEnviar.Enabled = False
cmdCambiar.Enabled = True
cmdConectar.Enabled = True
cmdEscuchar.Enabled = False
Me.Caption = "Cliente"
End Sub
Private Sub cmdConectar_Click()
On Error Resume Next
Winsock1.Connect txtIP, txtPuerto
cmdConectar.Enabled = False
End Sub
Private Sub cmdEnviar_Click()
Dim sFileName As String
If Trim(txtArchivo) = "" Then
MsgBox "Debe elegir un archivo"
Exit Sub
End If
If Dir(txtArchivo) <> "" Then
sFileName = GetFileName(txtArchivo)
Winsock1.SendData "|Archivo|" & FileLen(txtArchivo) & "|" & sFileName
Else
MsgBox "El archivo no existe"
End If
End Sub
Private Sub cmdBuscar_Click()
With CommonDialog1
.FileName = vbNullString
.ShowOpen
If .FileName <> "" Then
txtArchivo = .FileName
cmdEnviar.Enabled = True
End If
End With
End Sub
Private Sub cmdCambiar_click()
txtIP.Enabled = True
txtPuerto.Enabled = True
End Sub
Private Sub Winsock1_Close()
On Error Resume Next
cmdConectar.Enabled = True
cmdEnviar.Enabled = False
Winsock1.Close
MsgBox "La Conexion se ha cerradado", vbInformation
txtIP.Enabled = False
txtPuerto.Enabled = False
txtArchivo.Enabled = False
cmdBuscar.Enabled = False
cmdEnviar.Enabled = False
cmdCambiar.Enabled = False
cmdConectar.Enabled = False
cmdEscuchar.Enabled = False
End Sub
Private Sub Winsock1_Connect()
cmdConectar.Enabled = False
cmdEnviar.Enabled = True
MsgBox "Conectado correctamente al servidor"
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim sData As String
Winsock1.GetData sData, vbString
If sData = "|Ok|" Then Call Enviar_Archivo
End Sub
Private Sub Winsock1_Error( _
ByVal Number As Integer, _
Description As String, _
ByVal Scode As Long, _
ByVal Source As String, _
ByVal HelpFile As String, _
ByVal HelpContext As Long, _
CancelDisplay As Boolean)
On Error Resume Next
cmdConectar.Enabled = True
cmdEnviar.Enabled = False
Winsock1.Close
MsgBox "Error al cerrar la conexion"
End Sub
Private Sub Enviar_Archivo()
Dim Size As Long
Dim arrData() As Byte
Open txtArchivo For Binary Access Read As #1
Size = LOF(1)
ReDim arrData(Size - 1)
Get #1, , arrData
Close
Winsock1.SendData arrData
End Sub
Private Function GetFileName(sPath As String)
Dim sBuffer As String * 255
Dim sTemp As String
GetFileTitle sPath, sBuffer, Len(sBuffer)
GetFileName = Left(sBuffer, InStr(1, sBuffer, Chr(0)) - 1)
End Function
Private Sub cmdServidor_Click()
txtIP = ""
txtIP.Enabled = False
txtPuerto = "3000"
txtPuerto.Enabled = False
txtArchivo = ""
txtArchivo.Enabled = False
cmdBuscar.Enabled = False
cmdEnviar.Enabled = False
cmdCambiar.Enabled = True
cmdConectar.Enabled = False
cmdEscuchar.Enabled = True
Me.Caption = "servidor"
End Sub
Private Sub cmdEscuchar_Click()
On Error GoTo error_handler
With Winsock2
.LocalPort = txtPuerto
.Listen
End With
cmdEscuchar.Enabled = False
Exit Sub
error_handler:
MsgBox Err.Description
End Sub
Private Sub Winsock2_ConnectionRequest(ByVal requestID As Long)
On Error GoTo error_handler
cmdEscuchar.Enabled = False
With Winsock2
.Close
.Accept requestID
End With
MsgBox "Conexion recibida"
Exit Sub
error_handler:
MsgBox Err.Description, vbCritical, "Winsock2_ConnectionRequest"
End Sub
Private Sub Winsock2_Close()
On Error GoTo error_handler
cmdEscuchar.Enabled = True
Winsock2.Close
MsgBox "Conexion cerrada"
Exit Sub
error_handler:
MsgBox Err.Description, vbCritical, "Winsock_Close"
End Sub
Private Sub Winsock2_Connect()
MsgBox "Conexion aceptada", vbInformation
End Sub
Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
Dim arrData() As Byte
Dim vData As Variant
If Flag = False Then
Winsock2.GetData vData, vbString
If Mid(vData, 1, 9) = "|Archivo|" Then
Flag = True
lBytes = 0
vData = Split(vData, "|")
lFileSize = vData(2)
Winsock2.SendData "|Ok|"
Open App.Path & "\" & vData(3) For Binary Access Write As #1
End If
End If
If Flag Then
lBytes = lBytes + bytesTotal
Winsock2.GetData arrData
Put #1, , arrData
If lBytes >= lFileSize Then
Close #1
Flag = False
lBytes = 0
MsgBox "El archivo se ha recibido por completo"
End If
End If
End Sub
Private Sub Winsock2_Error( _
ByVal Number As Integer, _
Description As String, _
ByVal Scode As Long, _
ByVal Source As String, _
ByVal HelpFile As String, _
ByVal HelpContext As Long, CancelDisplay As Boolean)
On Error Resume Next
cmdEscuchar.Enabled = True
Winsock2.Close
MsgBox "La Conexion se ha cerrado", vbInformation
End Sub
Podrías especificar en que linea te arroja el error? :-\
Lo probé junto a él y no es que de error en el código, es que salta una ventana diciendo que no se puede conectar. Probamos con un puerto y conectó, pero desconectó al instante.
exacto lo qeu dice ADN y no sabemos por qeu pensamos que es cosa del router o firewall del mismo pero nosabemos... alguien que arroje algo de inspiracion???
Salu2
Cita de: aaronduran2 en 1 Diciembre 2008, 23:05 PM
Lo probé junto a él y no es que de error en el código, es que salta una ventana diciendo que no se puede conectar. Probamos con un puerto y conectó, pero desconectó al instante.
Al momento de desconectar arroja un mensaje?
Pues no creo que sea por el code.
Probamos con diferentes puertos y no iba ninguno, ni siquiera mostraba nada. Luego probamos con el 21, y después de conectar (aparecía un mensaje confirmándolo) se desconectaba repentinamente (avisando con otro mensaje).
entonces nadie sabe como solucionarlo??? :( :( :-( :-( :-(
Salu2