怎么用vb编一个能把电脑里的文件发送出去的程序 10

 我来答
离心时逝
2015-08-26
知道答主
回答量:17
采纳率:0%
帮助的人:7.5万
展开全部

先去这个地址下载Winsock控件:http://download.pchome.net/dll/m/detail-171903.html

然后添加一个Winsock1到窗体上。然后写代码。

【发送端】代码:

连接代码:

Winsock1.Close

Winsock1.Connect "127.0.0.1", 5000     '这里5000可以自定义。IP设为便于本地调试

发送代码:

Dim a() As Byte
If Winsock1.State = sckClosed Then
    MsgBox "服务端连接失败", vbCritical, "警告"
    Exit Sub
 End If
 '-----------------
 send_filename = "C:\fasong.exe"       '发送的文件名
 Open send_filename For Binary As #1
 If LOF(1) <= 1000 Then                '判断载入文件的大小,如果小于1000直接发送
     ReDim a(LOF(1) - 1) As Byte
     Get #1, , a
     Winsock1.SendData a
     Close
     Exit Sub
 End If
 
 If LOF(1) > 1000 Then         '如果大于1000
  lump = LOF(1) \ 1000         '切割的块数
  left_lump = LOF(1) Mod 1000  '剩下的文件的大小
    For i = 1 to lump
        ReDim a(1 To 1000) As Byte
        Get #1, , a
        Winsock1.SendData a
    Next
 End If
 If left_lump > 0 Then         '如果剩下文件大小大于0字节
     ReDim a(1 To left_lump) As Byte
     Get #1, , a
     Winsock1.SendData a       '发送文件
 End If
 Close
 
'--------------------------------------------------------
Close

接收端添加一个Winsock1。代码:

  If Winsock1.State = sckClosed Then
  Winsock1.LocalPort = 5000
  Winsock1.Listen
  ElseIf Winsock1.State = sckConnected Then
  End If

在Winsock1的ConnectionRequest事件中这样写:

On Error Resume Next
Winsock1.Close
Winsock1.Accept requestID

在Winsock1的DataArrival事件中这样写:

On Error Resume Next
DoEvents     '防止卡死
Dim a() as Byte
accept_filename = "d:\accept.exe"        '接收后的文件名
Open accept_filename for binary as #1
If LOF(1) = 0 Then                 '如果接收到的是新文件
    ReDim a(bytesTotal - 1)    '必须减1 因为数组默认下标为0
    Winsock1.GetData a
    Put #1, 1, a                        '第一次写在1的位置
Else      '如果是文件剩下的部分
    ReDim a(bytesTotal - 1)
    Winsock1.GetData a
    Put #1, LOF(1) + 1, a    '从第二次开始就将读写文件的指针往后移动一个字符,再写入数据。           '如果不往后移动指针(+1)的话,新的数据会覆盖掉前面的数据
End If 
Close
帐号已注销
2015-02-11 · 超过27用户采纳过TA的回答
知道答主
回答量:124
采纳率:0%
帮助的人:47.6万
展开全部
用winsock控件,工程~部件~microsoft winsock
更多追问追答
追问

没有阿
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-02-11
展开全部
用 winsoc 或者 inet
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-02-11
展开全部
看我P控件集版本3那贴
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式