VB 如何在局域网内实现FTP 传输?我觉得,,局域网内只有FTP传输的速度会快些怎样来实现呢?

解决方案 »

  1.   

    没做过,大概你用vb运行一些ftp命令,然后界面化就对了吧,shell
      

  2.   

      http://www.vbip.com/protocols/ftp/vb-ftp-client-library/default.asp   
      http://www.vbip.com/winsock/winsock_ftp_01.asp   
      http://www.vbip.com/winsock/winsock_ftp_ref_01.asp   
      http://www.vbip.com/winsock/winsock_ftp_client_01.asp   
      http://www.vbip.com/winsock/winsock_ftpclass_ref.asp
      

  3.   

    有两种方法: 1、使用 WinSock 控件。在"工程"->"部件"命令中选中"Microsoft Winsock Control"即出现在工具栏中。连接 FTP 可是用以下语句: WinSock1.Connect "ftp.scut.edu.cn", 21 接收数据可使用: Dim strData As String WinSock1.GetData strData 注意:以上两行代码必须写在 WinSock 控件的 DataArrival 事件中,否则无效。关闭连接使用: WinSock1.Close 至于如何处理服务器返回消息及发送相应的指令,因为太长,不便说出。但是由于 FTP 的返回消息一般都有三位数字编号,所以可以根据编号来处理数据,这可以使用字符串处理函数。以下是我从网上搜索的 FTP 返回消息数字表: 110 重新启动标记应答。 120 服务器在一段时间内就绪。 125 数据连接端口开启,准备传送。 150 文件状态正常,开启数据连接端口。 200 命令执行成功。 202 命令执行失败。 211 系统状态或系统请求响应。 212 目录的状态。 213 文件的状态。 214 求助的讯息。 215 服务器的系统类型。 220 服务器已为新的会话就绪。 221 服务器关闭了当前的会话连接。 225 数据连接开启,但是没有传输数据。 226 关闭数据连接端口,请求的文件操作成功。 227 进入被动模式(Passive Mode)。 230 用户登录成功。 250 请求的文件操作完成。 257 显示目前的路径名称。 331 用户名称正确,需要密码。 332 登入时需要账号信息。 350 请求的操作需要进一部的命令。 421 连接无动作超时,关闭当前会话。 425 无法开启数据连接端口。 426 关闭会话,终止传输。 450 请求的操作未执行。 451 命令终止,发生本地错误。 452 未执行命,磁盘空间不足。 500 格式错误,无法识别命令。 501 参数语法错误。 502 命令执行失败。 503 命令顺序错误。 504 命令所接的参数不正确。 530 尚未登录。 532 储存文件需要用户登录。 550 未执行请求的操作。 551 请求的命令终止,类型未知。 552 请求的文件终止,储存位溢出。 553 未执行请求的的命令。Microsoft Internet Transfer 控件。 
    使用get方法,先将文件下到本地,然后再读取ini内容就可以了。 这是最简单的方法了,如果使用socket写底层,你需要完全理解ftp协方.
    先设置Microsoft Internet Transfer的属性也就是url,传输协议,用户名,口令等等,都是中文的,设计时完成。最后使用Execute方法里的get获得文件。 
    至于读取本地ini文件,如果是标准ini,可以使用api函数,如果只是普通文本,那就用input与output好了。 Execute 方法示例 
    该示例列举了一系列使用 Execute 方法的 FTP 操作。该示例假定窗体中有三个 TextBox 控件。第一个控件 txtURL 包含 FTP 服务器的 URL。第二个控件 txtRemotePath 包含特殊命令所需的附加信息。第三个控件 txtResponse 包含服务器的响应。 Private Sub cmdChangeDirectory_Click() 
    '将目录改变到 txtRemotePath。 
    Inet1.Execute txtURL.Text, "CD " & txtRemotePath.Text 
    End Sub Private Sub cmdDELETE_Click() 
    '删除 txtRemotePath 中的目录。 
    Inet1.Execute txtURL.Text, "DELETE " & txtRemotePath.Text 
    End Sub Private Sub cmdDIR_Click() 
    Inet1.Execute txtURL.Text, "DIR FindThis.txt" 
    End Sub Private Sub cmdGET_Click() 
    Inet1.Execute txtURL.Text, "GET GetThis.txt C:\MyDocuments\GotThis.txt" 
    End Sub Private Sub cmdSEND_Click() 
    Inet1.Execute txtURL.Text, "SEND C:\MyDocuments\Send.txt SentDocs\Sent.txt" 
    End Sub Private Sub Inet1_StateChanged(ByVal State As Integer) 
    'State = 12 时,用 GetChunk 方法检索服务器的响应。 Dim vtData As Variant ' Data variable. 
    Select Case State 
    '...没有列举其它情况。 
    Case icError '11 
    '出现错误时,返回 ResponseCode 和 ResponseInfo。 
    vtData = Inet1.ResponseCode & ":" & Inet1.ResponseInfo 
    Case icResponseCompleted ' 12 Dim vtData As Variant 
    Dim strData As String 
    Dim bDone As Boolean: bDone = False '取得第一个块。 
    vtData = Inet1.GetChunk(1024, icString) 
    DoEvents Do While Not bDone 
    strData = strData & vtData 
    '取得下一个块。 
    vtData = Inet1.GetChunk(1024, icString) 
    DoEvents If Len(vtData) = 0 Then 
    bDone = True 
    End If 
    Loop 
    txtData.Text = strData 
    End Select