WinSock 基本概念:
Winsock 的全名是Windows Socket,是Microsoft windows 环境下的标准TCP/IP 网络开发环境,是介于Windows TCP/IP 的Protocol stack之间的一项标准接口。Winsock是一个基于Socket 模型的API,它包括许多为Unix 开发的Berkeley函数和基于Windows消息驱动机制的Windows扩展函数,Winsock规范定义了一个TCP/IP网络上开发Windows程序的接口标准,其所提供的程序库Winsock.DLL 会负起与网络底层沟通的工作,它提供了访问 TCP 和 UDP 网络服务的方便途径。Microsoft Access、Visual Basic、Visual C++ 或 Visual FoxPro 的开发人员都可使用它。进而使得设计者能设计出更多功能或更具有用户友好性的网络软件。
为什么要采用Winsock编程?Winsock更接近底层,应用程序在正常情况下通过WinSock接口可以直接访问网络栈。
除了因 WinSock提供网路底层之通讯能力, 使程式设计者不必担心实际通讯细节, 设计出好的网路软体, 其它的好处有:
(1)使用方便,省却输入指令之麻烦
视窗的环境给人的感觉就是使用者亲和性高,想要执行的软体,只要在相对的 Icon 点两下即可。网路软体亦相同,只要设定正确,点两下即可连上网路,再也不需要输入一大堆的指令。
(2)提供多媒体的环境
在 Windows下执行 Mosaic 或 Cello WWW Browser,你将感受到网路多媒体的好处。看文章不再只有是密密麻麻的文字,而是如看杂志般图文并貌。如你有音效设备,你可以听一段演讲。甚至你可以看一段影片。
(3)支援群广大
由于 WinSock负责网路底层的工作,省却设计上的麻烦,使得有更多的人投入设计网路程式的行列, 可以期待的是将有更多好用, 功能更强的软体可以使用。
2.2 Win32 API函数:
Win32 API即为Microsoft 32位平台的应用程序编程接口(Application Programming Interface)。所有在Win32平台上运行的应用程序都可以调用这些函数。
使用Win32 API,应用程序可以充分挖掘Windows 32位操作系统的潜力。Microsoft的所有32位平台都支持统一的API,包括函数、结构、消息、宏及接口。使用Win32 API不但可以开发出在各种平台上都能成功运行的应用程序,而且也可以充分利用每个平台特有的功能和属性。源:自~优尔-·论`文'网·www.youerw.com/
在具体编程时,程序实现方式的差异依赖于相应平台的底层功能的不同。最显著的差异是某些函数只能在更强大的平台上实现其功能。例如,安全函数只能在Windows NT操作系统下使用;再例如:本文中将要使用的Winsock API函数,也只能在Windows NT操作系统下使用。另外一些主要差别就是系统限制,比如值的范围约束,或函数可管理的项目个数等等。
标准Win32 API函数可以分为以下几类:
窗口管理
窗口通用控制
SHELL特性
图形设备接口
系统服务
国际特性
网络服务
2.3 TCP / IP协议
计算机网络是由一系列网络通信协议组成的,其中的核心协议是传输层的TCP/IP和UDP协议。TCP是面向连接的,通信双方保持一条通路,好比目前的电话线,使用telnet登陆BBS,用的就是TCP协议;UDP是无连接的,通信双方都不保持对方的状态,浏览器访问Internet时使用的HTTP协议就是基于UDP协议的。TCP和UDP协议都非常复杂,尤其是TCP协议,为了保证网络传输的正确性和有效性,必须进行一系列复杂的纠错和排序等处理。