ciao,
se ti accontenti di poco ecco cosa ci vuole:

Server:

codice:
Option Explicit

Dim lPos As Long
Dim bOK As Boolean
Dim fname As String

Private Sub Form_Load()
wsTCP(0).LocalPort = 1111
wsTCP(0).Listen
End Sub

Private Sub wsTCP_Close(Index As Integer)
  Close #1
  Unload wsTCP(1)
  bOK = False
End Sub

Private Sub wsTCP_ConnectionRequest(Index As Integer, ByVal requestID As Long)
 Load wsTCP(1)
  wsTCP(1).Accept requestID
End Sub

Private Sub wsTCP_DataArrival(Index As Integer, ByVal bytesTotal As Long)
  If Not bOK Then
    wsTCP(1).GetData fname
    If InStr(fname, vbCrLf) <> 0 Then fname = Left(fname, InStr(fname, vbCrLf) - 1)
    bOK = True
    If Dir(App.Path & "\Down\" & fname) <> "" Then Kill App.Path & "\Down\" & fname
    Open App.Path & "\Down\" & fname For Binary As 1
    lPos = 1
    wsTCP(1).SendData "OK" & vbCrLf
  Else
    Dim buffer() As Byte
    wsTCP(1).GetData buffer
    Put #1, lPos, buffer
    lPos = lPos + UBound(buffer) + 1
 
  End If
End Sub
Client:

codice:
Option Explicit
Dim buffer() As Byte
Dim lBytes As Long
Dim temp As String

Private Sub cmdBrowse_Click()
  dlg.ShowOpen
  txtFile = dlg.FileName
End Sub

Private Sub cmdSend_Click()
  cmdSend.Enabled = False
  lBytes = 0
  DoEvents
  ReDim buffer(FileLen(dlg.FileName) - 1)
  Open dlg.FileName For Binary As 1
  DoEvents
  Get #1, 1, buffer
  Close #1
 Load wsTCP(1)
  wsTCP(1).Connect
  lblStatus = "Connecting..."
End Sub

Private Sub Form_Load()

  wsTCP(0).RemoteHost = "172.16.54.1"
  wsTCP(0).RemotePort = 1111
End Sub

Private Sub wsTCP_Close(Index As Integer)
  lblStatus = "Connection closed"
  Unload wsTCP(1)
End Sub

Private Sub wsTCP_Connect(Index As Integer)
  lblStatus = "Connected"
  wsTCP(1).SendData dlg.FileTitle & vbCrLf
End Sub

Private Sub wsTCP_DataArrival(Index As Integer, ByVal bytesTotal As Long)
  wsTCP(1).GetData temp
  
  If InStr(temp, vbCrLf) <> 0 Then temp = Left(temp, InStr(temp, vbCrLf) - 1)
  If temp = "OK" Then
    wsTCP(1).SendData buffer
  Else
    lblStatus = "Istruzione in Arrivo"
    Unload wsTCP(1)
    cmdSend.Enabled = True
  End If
End Sub

Private Sub wsTCP_SendComplete(Index As Integer)
  If temp = "OK" Then
    lblStatus = "Trasferimento completato"
    temp = ""
    Unload wsTCP(1)
    cmdSend.Enabled = True
  End If
End Sub

Private Sub wsTCP_SendProgress(Index As Integer, ByVal bytesSent As Long, ByVal bytesRemaining As Long)
  If temp = "OK" Then
  DoEvents
    lBytes = lBytes + bytesSent
    lblStatus = lBytes & " out of " & UBound(buffer) & " bytes sent"
  End If
End Sub
se hai difficoltà con i controlli, sono:

lblStatus = Label
wsTCP = Winsock
due Command , uno lo chiami "cmdSend" l' altro "cmdBrowse", poi
CommonDialog1 = dlg
un textbox = txtFile

Ciao