1. Winsock控件基础
Winsock控件在程序设计时,看不到这个控件显现在执行的窗体之中,但是它可以提供有关网络通讯方面的程序设计依据。此外,在这个控件的使用上,您可以非常容易地要求控件为您调用TCP或是UDP网络服务的功能。因此,当您在编写有关住从式架构的应用程序时,您可以不需要了解TCP通讯协议或是低级的Winsock api调用方式。
通常,以笔者的经验,除了必须与标准通讯协议进行互动外,仅仅是进行一般性相互通讯、交换数据时,Winsock控件可以满足您的要求。因此您可以非常容易地通过属性的设置以及控制方法的调用,与远程的设备进行连接并且相互交换信息。关于这些应用方面以及调用方式,笔者将在接下的探索中,慢慢地研究Winsock的应用方式。
1-1TCP基础
不论是在Internet或是Internet网络之中,以目前流行的趋势,多半都会使用TCP协议来进行远程设备的连接。TCP协议的全名为“传输控制协议(transfer control protocol)”,这是一种在Internet上使用的 主要协议,例如http,ftp,smtp等,都是属于这个中面向连接的协议。因此,当您 使用TCP协议连接两个网络上的设备时,将可以在它们之间交换希望交换的数据。
同时,如果您开发的应用程序属于主从式应用架构(或是n-tear(多层次))应用系统时,将必须要知道应用系统主机的ip地址(利用RemoteHost属于取得)以及连接端口号(利用remoteport属于取得)。在这些数据完全备齐之后,您才可以进行进一步的调用、连接。
因此,如果正在建立主机端应用程序时,必须指定本机,必须指定本机(执行应用程序所在的计算机)所用的连接端口号(localport属于),接着将Winsock控件设置为“监听(listen)”,即可等候远程客户端进行调用与连接。因此,当主机端接收到客户端调用并且要求连接的信息时,将会触发“要求连接()”的事件,接着进行标准“允许”或是“拒绝”的程序。
一旦主机端与客户端连接完成之后,您将可以开始使用“传送数据(senddata)”方法,将数据传送给对方,并且利用“传送完成(sendcomplete)”事件,来检测数据是否传送完毕。同时,在数据传达对方的计算机时,将会触发对方计算的“接收数据(dataarrival)”事件。此时,您可以使用“取得数据(getdata)”方法,来去出这些接收到的数据。
上述的程序将周而复始地发生,直到发生“中断连接(closed)”事件或是不正常断线为止。这种连接与数据传输的方式,则是属于Winsock控件TCP协议的运行特色。图1-1所示为使用TCP连接的运行模式。

1-2 UDP基础
相对于TCP面向连接的协议则是属于UDP非面向连接协议,UDP协议的全名是“用户数据报协议(user datagram protocol)”,其运行方式明显与TCP协议有所不同。一般来说,使用UDP协议并没有所谓的主机端或是客户端的限制,您可以依据需求任意对调用主机端与客户端的角色。
因此,在数据传输之前,您必须要先设置好本机端所使用的连接端口(localport属于所指定的)。因此,在本机上必须设置远方主机的ip地址(RemoteHost属性所指定的)以及连接端口号(remoteport),并且使用这个属性的内容与远程设备进行连接。相对的,远程主机的本机连接端口则为调用端的远程连接端口号,而远程主机的“远程主机ip地址(RemoteHost属性)”则为调用端的本机ip地址。
为了让您可以对UDP协议有更清楚的了解,请参照下面的图:

在完成连接之后,即可通过连接到远程的连接端口,使用senddata方法,将数据传送到远程的主机上。远程的主机一旦接收到数据,将会立即触发dataarrival事件,此时您可以使用getdata方法,来取得远程所传送的数据。 上面阐述了有关TCP和UDP的一些连接原理,至于Winsock的属性、方法、事件在此不做介绍有关资料都有详细的说明。来自:http://www.qqread.com/vb/i812992100.html
更多内容请看计算机和网络技术基础知识、网络管理实用手册、网络故障手册专题,或进入讨论组讨论。
相关专题
- 计算机和网络技术基础知识 (590篇文章)
- 网络管理实用手册 (22421篇文章)
- 网络故障手册 (14465篇文章)
- 电脑知识 (6487篇文章)
- 网络组网专题 (12494篇文章)
- 网络建设 (14032篇文章)
- Solaris基础知识入门 (4621篇文章)
- Java编程开发手册 (8276篇文章)
- 电脑基本知识 (95篇文章)
- Linux基础知识 (8286篇文章)
- VB+Access设计图书管理系统 (104238次浏览)
- VB设计有语音报时和报警功能的闹钟 (13528次浏览)
- 用VB制作一个简单的MP3播放器 (8172次浏览)
- DataGrid 控件的使用 (5010次浏览)
- 用VB编写记事本 (4443次浏览)
- IP地址与子网掩码(二) (4152次浏览)
- IP地址与子网掩码(三) (3708次浏览)
- 掌握VB中的ADO数据对象编程 (3504次浏览)
- 在VB下设计开发实时的数据采集曲线 (3403次浏览)
- VB中使用WinSock控件编写网络程序 (3400次浏览)



