vb中winsock控件的使用[完全]

上传人:简****9 文档编号:94919825 上传时间:2019-08-13 格式:PDF 页数:6 大小:113.20KB
返回 下载 相关 举报
vb中winsock控件的使用[完全]_第1页
第1页 / 共6页
vb中winsock控件的使用[完全]_第2页
第2页 / 共6页
vb中winsock控件的使用[完全]_第3页
第3页 / 共6页
vb中winsock控件的使用[完全]_第4页
第4页 / 共6页
vb中winsock控件的使用[完全]_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《vb中winsock控件的使用[完全]》由会员分享,可在线阅读,更多相关《vb中winsock控件的使用[完全](6页珍藏版)》请在金锄头文库上搜索。

1、 VB 中中 Winsock 控件的使用控件的使用 - 前一段时间,一个名叫 YAI 的病毒在我国闹的沸沸扬扬,许多不明真相的人对他感到 神秘莫测, 可是究其实质无非也就是一个远程控制软件罢了, 只不过他的服务器端程序隐藏 的十分好而已。其实在 VB5 中有一个基于 TCPIP 协议的 Winsock 控件,利用他改改属性, 写几段代码,我们同样可以来一回 YAI.由于篇幅所限,在这里我们只来看看对远程计算机 的重启,关闭功能室如何实现的。打开 VB5 后,在工具箱中并不能看到 Winsock 控件,通 过鼠标右键单击工具箱点“部件” ,再将“Microsoft Winsock Control

2、 5.0”选中确定后,就可 以将 Winsock 控件添加到工具箱中了。 远程控制功能是基于客户机/服务器这一模型来实现的,所以程序的编制也应分两部分 进行:一部分是服务器端-也就是被控制的一方,另一部分是客户端-控制方。服务器程序 要守侯在一个固定或不固定的网址(IP)上等待客户程序的请求;客户程序则向服务器程序所 在的网址请求连接, 连接成功后通过交换信息即可得到相应的服务。 因此设置 Winsock 属性 时,服务器端应设置 LocalPort 和应用 Listen 方法进行监听,客户程序则要设置 RemoteHost 和 RemotePort 及应用 Connect 方法请求连接, 并

3、用 Senddata 方法互换信息。 下面是 Winsock 控件的相关属性,方法和事件。(略去一些暂用不到的) *属性 - LocalHostName | 本地机器名 LocalIP | 本地机器 IP 地址 LocalPort | 本地机器通信程序的端口(0 sckClosed Then Winsock1.Close Winsock1.Listen 注释:关闭连接后继续监听 End Sub Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long) If Winsock1.State “ If Len(enstr) 11

4、Then If Left(enstr, 11) = “winbootdir=“ Then curr_win = Right(enstr, Len(enstr) - 11) Exit Do End If End If i = i + 1 enstr = Environ(i) Loop End Function Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String,

5、 ByVal HelpContext As Long, CancelDisplay As Boolean) MsgBox “错误“, vbOKOnly, “注意!“ 注释:如程序出现错误,则简单的退出 End End Sub -客户端程序(Client.exe) 程序界面如图control.jpg 防入四个命令按钮,一个标题框,一个 Winsock 控件,其属性设置如下: - - 控件名 | 控件类 | 属性 | 属性值 - closewin_but | commandbutton | caption | 远程关闭 startwin_but | commandbutton | caption

6、| 远程重启 connect_but | commandbutton | caption | 连接 exit_but | commandbutton | caption | 退出 state_lab | label | borderstyle | 1 - 代码如下: Private Sub Form_Load() Winsock1.LocalPort = 22226 注释:本地端口可任选,只要不冲突且小于 65535,用 注释:netstat -an 命令可查看当前通信进程 Winsock1.RemoteHost = “127.0.0.1“ 注释:调试时此 IP 将对本机操作,实际应用时可 注

7、释:换上被控方 IP Winsock1.RemotePort = 1334 注释:对应服务器端的 localport state_lab = “未建立连接.“ End Sub Private Sub closewin_but_Click() If Winsock1.State sckConnected Then state_lab = “请先建立连接“ Else Winsock1.SendData “a“ 注释:发出重启命令 End If End Sub Private Sub connect_but_Click() On Error GoTo skip If Winsock1.State =

8、 sckConnected Then state_lab = “已建立连接了“ Else Winsock1.Connect End If Exit Sub skip: 注释:用 netstat 命令看到状态为 Time_wait 则 If Err.Number = 10048 Then 注释:须等待一段时间才可连接,也可换另一 注释:端口,可加快连接速度 MsgBox “端口正在使用,请稍后再试!“, vbOKOnly, “注意!“ End End If End Sub Private Sub exit_but_Click() Winsock1.Close 注释:关闭连接且退出 End End

9、 Sub Private Sub Winsock1_Connect() state_lab = “建立连接成功!可发送命令.“ End Sub Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean) MsgBox “错误“, vbOKOnly, “注意!“

10、End End Sub 通过上面的例子,我们大概了解了远程控制的原理,对于其他功能的实现应该不难了。 如文件的下载,可先让客户程序发一命令字串注释:cc:windowslzh.pwl 注释:,服务器接收 到命令字串后判断出首字母 c 为下载命令,则将所指定的命令文件注释:c:windowslzh.pwl 注释:传送给客户端,完成相应的服务。需要注意的是,此程序只能建立一个连接,如要建 立多个连接可通过在服务器端产生多个 Winsock 实例来接受请求. *测试环境: Window98,MicroSoft Visual Basic 5.0 企业版 附:属性 state 值 常数 值 描述 sckClosed 0 关闭状态 sckOpen 1 打开状态 sckListening 2 侦听状态 sckConnectionPending 3 连接挂起 sckResolvingHost 4 解析域名 sckHostResolved 5 已识别主机 sckConnecting 6 正在连接 sckConnected 7 已连接 sckClosing 8 同级人员正在关闭连接 sckError 9 错误

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号