VB局域网文件传送

来源:百度知道 编辑:UC知道 时间:2024/06/24 14:42:59
做一个局域网文件的传送,本机文件夹间传送可以,但是选择网上邻居的文件夹就不行了!看看哈。到底什么问题?
Private Const BIF_RETURNONLYFSDIRS = 1 '从这里开始为API声明
Private Const BIF_DONTGOBELOWDOMAIN = 2
Private Const MAX_PATH = 260

Private Declare Function SHBrowseForFolder Lib "Shell32" _
(lpbi As BrowseInfo) As Long

Private Declare Function SHGetPathFromIDList Lib "Shell32" _
(ByVal pidList As Long, _
ByVal lpBuffer As String) As Long

Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" _
(ByVal lpString1 As String, ByVal _
lpString2 As String) As Long

Private Type BrowseInfo
hWndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
Dim a As New Shell 'Shell对象

Private Sub Command1_Click() '源文件夹
Dim lpIDList As Long

可以用winsock控件
映射网络驱动器用WNetAddConnection2函数,查查MSDN,参数很简单
NetRESOURCE对象可以自己定义:

Private Type NETRESOURCE
dwScope As Long
dwType As Long
dwDisplayType As Long
dwUsage As Long
pLocalName As Long
pRemoteName As Long
pComment As Long
pProvider As Long
End Type
使用WinSock控件可以收发文件,并且不需要源主机提供网络共享。
原理如同一些黑客程序,使用Client/Server方式。
首先在Server主机定义两个Winsock控件,client主机定义一个Winsock控件。
首先把Server主机的一个Winsock控件设置TCP协议及使用的端口号,调用.listen方法。
Client主机的Winsock控件设置服务主机的IP地址和端口号,调用Connect方法。
服务主机的侦听Winsock会收到连接请求,使用Accept(另一个Winsock控件Name)来响应,完成连接的建立。
服务端程序读文件,通过Send方法传送数据,
客户端程序有数据到达后会引发DataArrive事件,在其中调用get方法获取数据,写文件。
完成后两端断开连接,调用Close方法。

这可是正规的vb编程啊
我那懂这么多

整个文件夹一起传送有点难度,我撤消我的回答.

你要在局域网里传东西,哪有这么麻烦,你直接开一个账号,然后共享一个文件,或者用netmeeting或者其他软件都可以实现局域网的传送