最新更新 sitemap 网站制作设计本站搜索
网页设计
国外网站 韩国网站 个人主页 手提袋设计 CSS 网页特效 平面设计 网站设计 Flash CMS技巧 服装网站 php教程 photoshop 画册 服务器选用 数据库 Office
虚拟主机 域名注册 云主机 网页设计 客服QQ:8208442
当前位置:首页 > 编程开发 > VB开发

VB中利用Winsock和msDNS控件进行

日期:09-03    来源:中国设计秀    作者:cnwebshow.com

一.认识Winsock和msDNS控件 T8C中国设计秀
  首先我们要认识Winsock控件,Winsock控件是微软提供的,是win98的内部控件,利用 WinSock 控件可以与远程计算机建立连接,Winsock包含有用户数据文报协议 (UDP)和传输控制协议 (TCP)。可用这两种协议来建立客户与服务器应用程序来进行数据交换。而msDNS是个人编写的共享控件,需要的可到(wch_email@163.net)联系。Winsock是进行数据交换的,msDNS是用来查找对方的IP地址。 T8C中国设计秀
二.Winsock的基础 T8C中国设计秀
T8C中国设计秀
1.TCP基础:TCP(Transfer Control Protocol)是传输控制协议的简称,是基于连接的协议,在数据传输之前必须先建立连接。T8C中国设计秀
T8C中国设计秀
2.UDP基础: UDP(User Data Protocol)是用户数据文报协议的简称,两台计算机之间的传输类似于传递邮件;两者之间没有明确的连接,可作为服务器,也可作为客户机。T8C中国设计秀
T8C中国设计秀
3.属性:T8C中国设计秀
T8C中国设计秀
BytesReceived:返回接收到的(当前在接收端缓冲区内的)数据的数量。使用GetData方法来获取数据。T8C中国设计秀
T8C中国设计秀
LocalHostName:返回本地机器名。T8C中国设计秀
T8C中国设计秀
LocalIP:返回本地机器的IP地址。T8C中国设计秀
T8C中国设计秀
LocalPort:返回或者设置所用到的本端口;如果指定的是端口 0,就使用一个随机端口。T8C中国设计秀
T8C中国设计秀
Protocol:返回或设置Winsock所用的协议是TCP或UDP。T8C中国设计秀
T8C中国设计秀
RemoteHostIP:返回远程机器的IP地址。T8C中国设计秀
T8C中国设计秀
State:返回控件的状态,用枚举类型来表示。T8C中国设计秀
T8C中国设计秀
SocketHandle:返回一个与连接字句对应的值。T8C中国设计秀
T8C中国设计秀
4.方法:T8C中国设计秀
T8C中国设计秀
Listen:用于服务器程序,等待客户访问。T8C中国设计秀
格式:Winsock对象.listen T8C中国设计秀
T8C中国设计秀
Connect:用于向远程主机发出连接请求T8C中国设计秀
格式:Winsock对象.connect [远程主机IP,远程端口]T8C中国设计秀
T8C中国设计秀
Accept:用于接受一个连接请求T8C中国设计秀
格式:Winsock对象.accept Request IDT8C中国设计秀
T8C中国设计秀
Senddata: 此方法用于发送数据T8C中国设计秀
格式:Winsock对象.senddata 数据T8C中国设计秀
T8C中国设计秀
Getdata: 用来取得接收到的数据T8C中国设计秀
格式:Winsock对象.getdata 变量 [,数据类型 [,最大长度]]T8C中国设计秀
T8C中国设计秀
Close: 关闭当前连接T8C中国设计秀
格式:Winsock对象.closeT8C中国设计秀
T8C中国设计秀
5.事件:T8C中国设计秀
T8C中国设计秀
DataArrival:新数据到达时出现;获取一个 GetData 调用中的全部数据。T8C中国设计秀
T8C中国设计秀
ConnectionRequest:当远程计算机请求连接时接受连接请求。T8C中国设计秀
T8C中国设计秀
SendComplete :在完成一个发送操作时出现 。T8C中国设计秀
T8C中国设计秀
SendProgress :在发送数据期间出现 。T8C中国设计秀
T8C中国设计秀
Error:后台处理中出现错误(例如,连接失败,或者在后台收发数据失败)事件就会出现。 T8C中国设计秀
T8C中国设计秀
Close :当远程计算机关闭连接时出现。T8C中国设计秀
三.程序代码: T8C中国设计秀
  通过远程控制计算机,使远程计算机重新启动或关闭,需设置一个服务器程序和一个客户机程序,服务器受客户机的控制。T8C中国设计秀
T8C中国设计秀
1.服务器程序:T8C中国设计秀
T8C中国设计秀
  在VB5的编程环境下,新建一个工程,在Form1中添加一个Winsock控件,Winsock的“名称"为Winsock1,属性Protocol设置为0-sckTCPProtocol,Form1的属性Visible=False,这样运行该程序就会隐藏起来不可见;其代码如下:T8C中国设计秀
T8C中国设计秀
Option ExplicitT8C中国设计秀
T8C中国设计秀
"该函数(ExitWindowsEx)是win98里的API函数,是用来重启或关闭计算机的T8C中国设计秀
T8C中国设计秀
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As LongT8C中国设计秀
Const EWX_LOGOFF = 0T8C中国设计秀
Const EWX_SHUTDOWN = 1T8C中国设计秀
Const EWX_REBOOT = 2T8C中国设计秀
Const EWX_FORCE = 4T8C中国设计秀
Const EWX_POWEROFF = 8T8C中国设计秀
Const EWX_RESET = EWX_LOGOFF + EWX_FORCE + EWX_REBOOTT8C中国设计秀
T8C中国设计秀
Private Sub Form_Load()T8C中国设计秀
 On Error GoTo skip "如此端口出现冲突程序则退出T8C中国设计秀
 Winsock1.LocalPort = 1334 "端口值应大于1024,如还有冲突可改为其他值T8C中国设计秀
 Winsock1.ListenT8C中国设计秀
Exit SubT8C中国设计秀
skip:T8C中国设计秀
If Err.Number = 10048 ThenT8C中国设计秀
 MsgBox "端口冲突,退出!", vbOKOnly, "注意!"T8C中国设计秀
EndT8C中国设计秀
End IfT8C中国设计秀
End SubT8C中国设计秀
T8C中国设计秀
Private Sub Winsock1_Close()T8C中国设计秀
 If Winsock1.State <> sckClosed Then Winsock1.CloseT8C中国设计秀
 Winsock1.Listen "关闭连接后继续监听T8C中国设计秀
End SubT8C中国设计秀
T8C中国设计秀
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)T8C中国设计秀
 If Winsock1.State <> sckClosed Then Winsock1.CloseT8C中国设计秀
 Winsock1.Accept requestID "请求到达时,接受连接T8C中国设计秀
End SubT8C中国设计秀
T8C中国设计秀
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)T8C中国设计秀
Dim dwReserved As LongT8C中国设计秀
Dim strget As StringT8C中国设计秀
Dim X As LongT8C中国设计秀
Dim ccom As StringT8C中国设计秀
 Winsock1.GetData strget "读取到达的数据T8C中国设计秀
 Select Case strgetT8C中国设计秀
  Case "Reset" "判断到达的数据是否‘Reset’,是则重启T8C中国设计秀
   X = ExitWindowsEx(EWX_RESET, dwReserved)T8C中国设计秀
  Case "Close" "如为‘Close’则关闭计算机T8C中国设计秀
   X = ExitWindowsEx(EWX_SHUTDOWN, dwReserved)T8C中国设计秀
  Case Else "可以在此加入其他命令T8C中国设计秀
 End SelectT8C中国设计秀
End SubT8C中国设计秀
T8C中国设计秀
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)T8C中国设计秀
 MsgBox "错误", vbOKOnly, "注意!" "如程序出现错误,则退出T8C中国设计秀
EndT8C中国设计秀
End SubT8C中国设计秀

T8C中国设计秀
T8C中国设计秀
2.客户机程序:T8C中国设计秀
T8C中国设计秀
  新建一个工程,在Form1中加入Winsock控件(misrosoft winsock control 6.0)和msDNS控件(msDNS Activex DNS query control (Freeware)),可到中国VB大本营下载,也可以和(wch_email@163.net)联系。把msDNS控件复制到“c:windowssystem”目录下。再加入三个Label控件,两个TextBox控件(控件数组,

本文引用地址:/bc/article_61279.html
网站地图 | 关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明