.1.WindowsSockets规范及应用-Windows网络编程接口施炜李铮秦颍编著******************************************************************版权信息本书作者保留所有版权。禁止任何商业性的转载或复制。非赢利性质的转载和复制不得修改文章内容,并请保留此段文字。Copyright(c)1995-1996By施炜,李铮,秦颖AllRightReserved******************************************************************.2..3.内容提要本书适应了Windows、Internet及计算机网络普及的潮流,介绍了一套在Windows下网络编程的规范-WindowsSockets。这套规范是Windows下得到广泛应用的、开放的、支持多种协议的网络编程接口。从1991年的1.0版到1995年的2.0.8版,经过不断完善并在Intel、Microsoft、Sun、SGI、Informix、Novell等公司的全力支持下,已成为Windows网络编程的事实上的标准。为使读者能够充分理解和应用这套规范,本书不但对WindowsSockets1.1及2.0规范作了较为详尽的介绍,还结合了作者的实际工作,给出了具有实际应用价值的程序实例。书中的内容包括:WindowsSockets规范1.1版及2.0.8版介绍;WindowsSockets网络编程指导和具体应用实例;WindowsSockets规范1.1版及2.0.8版库函数参考等。本书体系完整,文字流畅,可供从事网络应用开发的工程技术人员和大专院校师生参考。作者声明由于成书时间紧迫。本书不免有许多错误和不当之处,故此作者衷心希望各位读者能对本书提出宝贵意见(包括补充新的应用实例和内容),以便我们进一步修改完善此书。我们会尊重相应修订者的版权。作者也衷心希望在我们和各位读者的努力下,本书能够成为一本关于WindowsSockets编程的系统而又准确的免费中文参考书,为广大读者在Windows下网络编程提供帮助。作者联系地址:施炜:上海交通大学94032班(200030)Email:weishi@fudan.ihep.ac.cn李铮:上海交通大学自动化系(200030)Email:blee.bbs@captain.net.tsinghua.edu.cn秦颖:上海交通大学94033A班(200030)Email:fluke.bbs@captain.net.tsinghua.edu.cn作者希望每一位拿到本书的读者能以任何方式通知我们。以便我们掌握本书的应用情况。并敬请各位读者暂时不要在其他FTP站点散发,谢谢合作。编著者1996年5月20日.4.前言当今世界正处于信息时代,计算机和通信网络是这一时代所谓“信息基础设施”。网络化是计算机技术九十年代的重要发展趋势之一。目前计算机网络的新发展是:异机种网络和异网互联有较大突破。TCP/IP协议在异网互联中体现出了其强大的生命力,以它为基础组建的Internet是目前国际上规模最大的计算机网间网,到1991年底世界上已有26个国家的五千多个网络连入Internet,其中包含了数千个组织的30万台主机,用户数以百万计。与计算机网络的普及相呼应的是Windows的广泛应用,现在在全世界各地已有超过四千万用户在使用不同版本的Windows。自1995年8月24日Windows95正式推出以来,在短短的一个星期内销售量已超过100万份,有的零售商店不得不半夜开门,以迎接滚滚而来的抢购者。这说明以用户友好的图形界面为基础的Windows已得到用户的普遍认可,已经并将继续成为个人机平台上的事实上的操作系统标准。所以研究和开发在Windows下的网络编程技术具有普遍的应用价值。在Windows下的各种网络编程接口中,WindowsSockets脱颖而出,越来越得到大家的重视,这是因为WindowsSockets规范是一套开放的、支持多种协议的Windows下的网络编程接口。从1991年的1.0版到1995年的2.0.8版,经过不断完善并在Intel、Microsoft、Sun、SGI、Informix、Novell等公司的全力支持下,已成为Windows网络编程的事实上的标准。在作者利用WindowsSockets规范进行应用开发的过程中,发现这方面的资料很少,特别是缺乏一本全面而实用的专著。为了使广大用户能够充分理解和应用这套规范,我们编写了这本书。本书不但对WindowsSockets1.1及2.0规范作了较为详尽的介绍,还结合了作者的实际工作,给出了具有实际应用价值的程序实例。希望它能对WindowsSockets规范在国内的推广和应用起到抛砖引玉的作用。读者在阅读本书的过程中,如果能对自己的学习工作有所帮助和指导,是作者的最大愿望。由于时间紧迫,作者学识有限,书中错误在所难免,偏颇和不当之处,恳请读者不吝赐教。本书由施炜、李铮、秦颖合作完成,其中,第一、二、四、六章和5.2节由施炜编写;第七章、5.1节、3.4节由李铮编写;第5.3节、3.1-3.3节由秦颖编写。在本书的编写过程中,得到了上海交通大学的毛向辉先生的大力支持,并提供了一些最新的资料,在此谨表示衷心的谢意。编著者1995年9月于上海交通大学.5.目录第一章简介.................................................................................................................................................101.1什么是WINDOWSSOCKETS规范?.........................................................................................................101.2BEKELEY套接口.....................................................................................................................................111.3MICROSOFTWINDOWS和针对WINDOWS的扩展..................................................................................111.4这份规范的地位....................................................................................................................................121.5曾经作过的修改....................................................................................................................................121.5.1WindowsSockets1.0........................................................................................................................121.5.2WindowsSockets1.1........................................................................................................................12第二章使用WINDOWSSOCKETS1.1编程.........................................................................................142.1WINDOWSSOCKETS协议栈安装检查.....................................................................................................142.2套接口....................................................................................................................................................142.2.1基本概念.........................................................................................................................................142.2.2客户机/服务器模型........................................................................................................................152.2.3带外数据.........................................................................................................................................152.2.4广播.................................................................................................................................................162.3字节顺序................................................................................................................................................162.4套接口属性选项....................................................................................................................................172.5数据库文件............................................................................................................................................182.6与BERKELEY套接口的不同.................................................................................................................182.6.1套接口数据类型和错误数值..............................................