| 动画介绍:VB5中的WINSOCK控件在VB的帮助中解释的不是很清楚,我把自己在使用过程中的一些情况向网友们说明一下,这次主要是TCP协议。
TCP协议是当前Internet上传送数据的两种主要方法中的一种。TCP是一个面向连接的协议,负责保证在网络上传输的数据包都能够到达目的地。TCP连接是点到点的连接,一个TCP连接需要客户机和服务器都有一个IP地址和端口。
TCP控件中比较有用的有9个属性、7个方法、6个事件,说明如下表所示。
名称 含义 BytesReceived 接收缓冲区中的数据量 LocalHostName 本地机器名,控制面板网络中的机器名 LocalIP 本地机器的IP地址 LocalPort 本地机器用于通信的端口 RemoteHost 远程机器名 RemoteHostIP 远程机器的IP地址 RemotePort 远程机器用于通信的端口 SocketHandle 用于同WINSOCK层通信的句柄 State 连接的当前状态
所标识的端口一定不能再让其他应用程序使用。许多端口已定义为标准端口,因此应用程序不能再使用,一般1000以上的端口大多未被占用。
在进行程序设计时,服务器端必须设置的属性只有LocalProt,也就是监听的端口号。而客户端必须设置的属性是RemoteHost和RemotePort,远程主机可以填服务器端的域名(如www.ptt.js.cn),也可以填服务器的IP地址(如202.102.13.140),再把远程端口设置为服务器端监听的端口号。填好后就可以通过TCP的方法和事件进行连接了。需要在一台机器上运行一个程序的多个副本时要填写客户端的LocalProt属性,而且要识别并使每个副本用不同的端口地址。
State属性存储TCP连接的当前状态。由于State是只读的,因此不能对该连接状态置值,但却可以用各种方式使用状态值,常用的几种状态为:
sckClosed 关闭套接字 sckOpen 打开套接字 sckListening 正在监听 sckConnectionPending 连接挂起 sckConnecting 正在连接 sckConnected 已建立连接 sckClosing 关闭套接字 sckError 套接字出错
TCP控件中的方法如下表。一个连接的建立过程要进行以下几个步骤:
1)服务端用Listen监听一个端口。
2)客户端用Connect向服务端发出连接请求。
3)服务端用Accept接受连接。
4)服务端和客户端这间通过SendData、GetData、PeekData进行数据传送。
5)客户端或服务端使用Close关闭连接。
Accept 接受一个到来的连接请求 Close 关闭一个连接 Connect 向远程服务端发出连接请求 GetData 获得当前数据块 Listen 创建并监听一个套接字 PeekData 获得当前数据块的一个拷贝 SendData 把数据传送给远程机 |