第4 期 李红军 等 Windows Sockets 网络编程 71.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:6 大小:171KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

第4 期 李红军 等 Windows Sockets 网络编程 71.pdf

第4期李红军等WindowsSockets网络编程71.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第13卷第4期武汉科技学院学报Vo1.13No.42000年12月JOURNALOFWUHANINSTITUTEOFSCIENCEANDTECHNOLOGYDec.2000WindowsSockets网络编程李红军赵玉娇赵伟(机械系)(图书馆)(教务处)摘要在对WindowsSockcts网络编程作简要介绍的基础上,对在VisualC++6.0环境下如何进行网络编程以及如何使用多线程进行网络编程作了介绍和示范。关键词网络套接字阻塞多线程中图分类号TP3931WindowsSockets简介Windowssockets(简称Winsock)是微软的窗口系统结构(WOSA)的一部分。它是起源于UNIX上的BerkeleySoftwareDistribution(BSD)版本的套接字、并为Windows进行了专门地扩展。Internet是在UNIX系统上发展起来的,在UNIX上有许多成熟的编程接口,其中最通用的是一种叫做sockets(套接字)的接口。套接字的实质是通信端点的一种抽象,它提供一种发送和接收数据的机制。网络软件商为Windows开发一套标准的、通用的TCP/IP编程接口,并使之类似于UNIX下的sockets,这就是Windowssockets;Windowssocket的实现一般都由两部分组成:开发组件和运行组件。开发组件是供程序员开发Winsock应用程序使用的、它包括介绍Winsock实现的文档、Winsock应用程序接口(API)引入库和一些头文件。运行组件是Winsock应用程序接口的动态连接库(DLL),文件名为Winsock.DLL,应用程序在执行时通过装入它来实现网络通信功能。最初,Winsocket1.1版是专门为Internet设计的,现在的2.x版己经不再限于Internet和TCP/IP协议,它通过提供扩展的API编程接口,把自己的应用范围扩大到现存的和正在出现的各种网络和协议,包括PSTN、ISDN、无线网、所有的局域网协议、异步传输模式ATM等等;并且允许应用程序对所建立连接的可靠性、冗余度和带宽进行控制。由此可见,Winsock有着广泛的应用。Windowssockets是Windows下网络编程的规范。这套规范是Windows下得到广泛应用的、开放的、支持多种协议的网络编程接口。它定义并记录了如何使用API与Internet协议族(IPs、通常我们指的是TCP/IP)连接,尤其要指出的是所有的Windowssockets实现都支持流套接字和收稿日期:2000-8-25作者简介:李红军,男,(1974-);武汉,武汉科技学院(430073)©1994-2007ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.http://www.cnki.net第4期李红军等:WindowsSockets网络编程17数据报套接字。当我们为客户机/服务器开发一个特殊的应用程序时,我们可以通过套接字来交换我们的数据结构和数据报,以完成应用程序之间的通信。应用程序调用Winsock的API实现相互之间的通讯。Winsock又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。它们之间的关系如图1所示:应用程序1应用程序2xxyy网络编程界面,例如WindowsSocketsxy网络通讯协议服务界面,例如TCP/IPxy操作系统,例如Windows98,WindowsNT,Dos6.22xy物理通讯介质图1应用程序与WinsoCk关系图2套接字的两种主要形式在Windows套接字中,它主要有两种形式:数据报套接字(Datagramsocket)和流式套接字(Streamsocket)。流式(也称面向连接方式)套接字采用的是TCP协议,它提供了双向的,有序的,无重复并且无记录边界的数据流服务。在这种方式下,两个通讯的应用程序之间先要建立一种虚拟的连接。流方式的特点是:通讯可靠,对数据有校验和重发的机制,通常用来作数据文件的传输如ftp,telnet等,适合于大量数据的传输。数据报套接字采用的是UDP协议,它建立在IP协议上,提供无连接数据报传输,支持双向的数据流,但并不保证是可靠、有序、无重复的。也就是说,一个从数据报套接字接收信息的进程有可能发现信息重复了,或者和发出时的顺序不同。数据报文方式由于取消了重发校验机制,能够达到较高的通讯速率,可以用作一些对数据可靠性要求不高的遮讯,如实时的语音、图象传输等。另外,数据报套接字支持广播发送,使用setsockopt()函数可以使指定的套接字发送广