预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10
在线预览结束,喜欢就下载吧,查找使用更方便
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第一节:Winsock控件的介绍
Winsock控件的作用简单说就是可以用于两台或多台机器间通信,这里不多说这个控件的作用了,因为在以后的介绍中我们会了解到这个控件的强大功能的,如可以用来做聊天软件等……
废话不多说,来看看他有些什么重要的属性、方法和事件吧!
在VB6.0中的工具箱里默认情况下是没有这个控件的,添加方法如下:在工具箱上右击,选择[部件],然后在部件对话框中选择"MicrosoftWinsockControl6.0",后确定即可。如果没有这个复选框的话,请点击[浏览]按钮后在打开的[添加ActiveX控件]对话框选择MSWINSCK.ocx后选择打开,再点确定即可。Winsock控件在工具箱中图标为。
Winsck的主要属性:
属性名说明BytesReceived返回接收的数据,可以用GetData方法来获取它LocalHostName返回本机名LocalIP返回本机IPLocalPort返回或设置本机所用的端口,如果为0则为随机产生Protocol返回通信所用的协议RemoteHostName返回通信对方的计算机名RemoteHostIP返回通信对方的IPState返回Winscok的当前状态,取值如下
sckClosed(常量为0):关闭状态
sckOpen(常量为1):打开状态
sckListening(常量为2):侦听状态
sckConnectionPending(常量为3):连接状态
sckResolvingHost(常量为4):解析主机中
sckHostResolved(常量为5):已解析主机
sckConnecting(常量为6):正在连接
sckConnected(常量为7):已经连接
sckClosing(常量为8):客户端正在关闭
sckError(常量为9):连接发生错误Winsock的主要方法:
方法名作用listen使服务器程序处于侦听状态,等待客户端的连接请求connect用于客户端向远程发送一个连接请求,语法:Winsock.connect[IP,Port]Accept用于服务器接收一个远程客户端的连接请求,语法:Winsock.AcceptrequestIDsendData用于向远程发送数据,语法:Winsock.sendData数据getData用于接收远程发送来的数据,语法:Winsock.getData变量Close关闭通信Winsock的主要事件:
事件名说明Connect当服务器接收客户端请求时,服务端发生的事件DataArrival有数据到达时发生的事件,可以在这个事件中来getData发送来的数据ConnectionRequest客户端用Connect方法时服务器发生的事件,可以在这个事件中来Accept一个连接请求SendProgress发送数据中发生的事件,可以在这个事件中来标示当前已经发送多少数据SendComplete发送数据完成发生的事件Error通信发生错误时发生的事件Close关闭通信时发生的事件这节我们详细介绍了Winsock控件的属性、方法和事件等,只要拥有这些,我们就可以编很多功能强大的软件了。在接下来的几课中我们将以实例来说明Winsock的应用。
第二节:Winsock聊天器实例
上一节我们介绍了Winsock控件,这节我们将以一个聊天器的实例来说说如何应运Winsock控件进行计算机之间的通信。
我也做了一个聊天器,程序HYPERLINK"http://www.17zixue8.com/htm/biancheng/VB/VBSoftware/CharTool.rar"点击这里下载。
这节课我们做了用于通信的服务端和客户端,在制作他们之前,先看看服务端和客户端是如何设计的:(注:要复制本页代码时要注意去掉不正确的字符如?号)
服务端的设计:
1、设置好localPort作为侦听端口
2、使用listen使服务端处在侦听状态
3、客户端发出连接请求后触发ConnectionRequest事件
4、在ConnectionRequest中用Accept方法来接收客户端的连接请求
5、收发数据
客户端的设计:
1、设置RemoteHost,即你要连接IP
2、设置好RemotePort,即通信的端口号,要与服务端的一致
3、使用Connect方法向服务端发出连接请求
4、如果服务端同意连接请求则触发Connect事件
5、收发数据
服务端的制作:
界面如下:
服务器设计第一、二步的实现(窗体的Load事件):
PrivateSubForm_Load()wskServer.LocalPort=1024'1、设置好localPort作为侦听端口wskServer.Listen'2、使用listen使服务端处在侦听状态EndSub
服务器设计第三、四