estaba necesitando realizar un codigo de transferencia de archivos utiizando el control winsock.
estuve viendo un codigo aqui en el foro q me ayudo bastante este codigo lo he realizado en base a ese pero no lo puedo hacer andar...
conecta, pero para mandar manda cualquier cosa, varios archivos, no se cual es el problema, creo q es el orden en que escribe el open binary segun el orden en que llegan el archivo.
les agradeceria si se pudieran fijar cual es el error ya q yo no lo puedo encontrar.
este es el codigo del cliente
Código:
Option Explicit
Dim b1 As Boolean
Dim dire As String
Dim nombre As String
Private Sub MCLIENTE_Click()
Form3.Show
Me.Hide
End Sub
Private Sub DESCONECTAR_Click()
TCP.Close
End Sub
Private Sub Enviar_Click()
If dire <> "" Then
Dim buf As String * 1024
Dim todo As String
Open dire For Binary As #1
On Error GoTo juaz
TCP.SendData "NOM" & nombre
TCP.SendData "LAR" & LOF(1)
Barra.Min = 0
Barra.Max = LOF(1)
Do While Not EOF(1)
Get #1, , buf
todo = todo & buf
Loop
Close #1
TCP.SendData todo
End If
Exit Sub
juaz:
MsgBox Err.Description
End Sub
Private Sub Examinar_Click()
Common.ShowOpen
Direccion.Text = Common.FileName
nombre = Common.FileTitle
dire = Common.FileName
End Sub
Private Sub CONECTAR_Click()
If b1 = True Then
Dim ip1 As String
TCP.RemotePort = Val(PTXT.Text)
ip1 = IPTXT.Text
TCP.RemoteHost = ip1
TCP.Connect
b1 = False
CONECTAR.Caption = "Cerrar conectando..."
Else
b1 = True
TCP.Close
CONECTAR.Caption = "Conectar"
End If
End Sub
Private Sub TCP_SendProgress(ByVal bytesSent As Long, ByVal bytesRemaining As Long)
Barra.Max = bytesSent + bytesRemaining
Barra.Min = 0
Barra.Value = bytesSent
End Sub
Private Sub Timer1_Timer()
Select Case TCP.State
Case 0
Label3.Caption = "Estado de la conexión: Desconectado"
DESCONECTAR.Enabled = False
CONECTAR.Enabled = True
Case 6
Label3.Caption = "Estado de la conexión: Conectando..."
Case 7
Label3.Caption = "Estado de la conexión: Conectado"
DESCONECTAR.Enabled = True
CONECTAR.Enabled = False
End Select
End Sub
este es el codigo del servidor
Código:
Option Explicit
Dim b As Boolean
Private Sub ESCUCHAR_Click()
If b = True Then
TCP1.Listen
ESCUCHAR.Caption = "Dejar de escuchar"
b = False
Else
TCP1.Close
ESCUCHAR.Caption = "Escuchar"
b = True
End If
End Sub
Private Sub Form_Load()
b = True
End Sub
Private Sub MSERVIDOR_Click()
Form1.Show
Me.Hide
End Sub
Private Sub TCP1_ConnectionRequest(ByVal requestID As Long)
If TCP1.State <> sckClosed Then
TCP1.Close
End If
TCP1.Accept requestID
End Sub
Private Sub TCP1_DataArrival(ByVal bytesTotal As Long)
Dim recibido As String
Dim fnombre As String
Dim flargo As Long
Dim archivo As String
TCP1.GetData recibido
Select Case Mid(recibido, 1, 3)
Case "NOM" Or "nom"
fnombre = Mid(recibido, 4, (Len(recibido) - 3))
Case "LAR" Or "lar"
flargo = CLng(Mid(recibido, 4, (Len(recibido) - 3)))
Case Else
archivo = recibido
End Select
If Len(archivo) >= flargo Then
Common1.FileTitle = fnombre
Common1.ShowSave
Open Common1.FileName For Binary As #1
Put #1, , archivo
flargo = 0
fnombre = 0
archivo = ""
Close #1
End If
End Sub
desde ya les agradezco su ayuda