Logo
Английский Русский Немецкмй Французскмй Испанскмй Итальянскмй
контактыprivacy
   Support Forums
chart
• Adjust flexgrid cell
• Animation
• Centering form text
• Coffee machine
• Creating fileshares
• Creating shortcuts
• Custom buttons
• Directory browser
• Disable mouse events
• File search by ext
• File transfer
• File watcher
• Formatting flexgrid
• Get Content Type
• Get HTML source
• Get modem port
• HTTP proxy
• ipconfig
• Large file split/merge
• MAPI
• MCI Sound Player
• Menu with images
• MP3 normalizer
• Net Send
• Netstat 2000
• No duplicate entries
• Outlook Address Book
• Set font color
• Shapes
• SOAP test
• Text-to-image
• Text file viewer
• Text find/replace
• UPS component
• View NT groups
• Word template
• Writing DNS control
    • Using DNS control
• Writing SMTP control
    • Sending email
    • Mailing list
• Writing WhoIs control
    • Using WhoIs control
• View HTML source
OISV - Organization of Independent Software Vendors - Contributing Member
VB projects - File transfer

Description: simple file transfer using Winsock control
Minimum requirements: VB5 Pro
Download: source code

Client
Screenshot:
File transfer client (5 KB)
Project: Standard EXE
ActiveX Controls/Objects: comdlg32.ocx, MSWINSCK.OCX
Controls: wsTCP (Winsock), cmdSend (CommandButton), dlg (CommonDialog), cmdBrowse (CommandButton), txtFile (TextBox), lblStatus (Label)
Code:
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
    ReDim buffer(FileLen(dlg.FileName) - 1)
    Open dlg.FileName For Binary As 1
    Get #1, 1, buffer
    Close #1
    Load wsTCP(1)
    wsTCP(1).RemoteHost = "localhost"
    wsTCP(1).RemotePort = 1111
    wsTCP(1).Connect
    lblStatus = "Connecting..."
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 = "Something wrong"
        Unload wsTCP(1)
        cmdSend.Enabled = True
    End If
End Sub

Private Sub wsTCP_SendComplete(Index As Integer)
    If temp = "OK" Then
        lblStatus = "Send complete"
        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
        lBytes = lBytes + bytesSent
        lblStatus = lBytes & " out of " & UBound(buffer) & " bytes sent"
    End If
End Sub

Server
Screenshot:
File transfer server (5 KB)
Project: Standard EXE
Controls: Frame1 (Frame), Dir1 (DirListBox), Drive1 (DriveListBox), cmdRun (CommandButton), wsTCP (Winsock)
Code:
Option Explicit

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

Private Sub cmdRun_Click()
    If cmdRun.Caption = "Run" Then
        cmdRun.Caption = "Stop"
        wsTCP(0).LocalPort = 1111
        wsTCP(0).Listen
    Else
        wsTCP(0).Close
        cmdRun.Caption = "Run"
    End If
End Sub

Private Sub Drive1_Change()
    Dir1.Path = Drive1.Drive & "\"
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(Dir1.Path & "\" & fname) <> "" Then Kill Dir1.Path & "\" & fname
        Open Dir1.Path & "\" & 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


Copyright © 1996-2010 OstroSoft. Все права защищены. info@ostrosoft.com