资源描述:
《用多线程枝术实现Winsock编程.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MicrocomputerApplicationsVol.16,No.5,2000开发应用微型电脑应用2000年第16卷第5期用多线程枝术实现Winsock编程王广伟a李维钊a摘要本文在对Windows网络(WinSock)编程作一般一把钥匙。性介绍的基础上,对在VisualC++6.0环境下的如何进行网Windows开网络编程的规范—WindowsSockets。这套规络编程以及如何使用多线程进行网络编程作了介绍和示范。范是windows下得到广泛应用的、开放的、支持多种协议的网通过本文,读者可以掌握简单的网络编
2、程,并学会使用多线程络编程接口。来进行网络编程。WindowsSockets规范定义并记录了如何使用API与关键词网络套接字阻塞多线程Internet协议族(IPS,通常我们指的是TCPöIP)连接,尤其要指出的是所有的WindowsSockets实现都支持流套接口和数一、Windsock简介据报套接口。应用程序调用WindowsSockets的API实现相互之间的Winsock(WindowsSockets)是微软的窗口系统结构通讯。WindowsSockets又利用下层的网络通讯协议功能和(WOSA)的一部分。
3、它是基于UNIX上的BerKeleySoftware操作系统调用实现实际的通讯工作。它们之间的关系如图1。Distribution(BSD)版本的套接字,并为windows进行了专门的扩展。Internet是在UNIX系统上发展起来的,在UNIX上有许多成熟的编程接口,其中最通用的是一种叫做Sockets(套接字)的接口。套接字的实质是通信端点的一种抽象,它提供一种发送和接收数据的机制。在1991年前后,许多网络软件商都在加紧研制Windows下的TCPöIP通迅组件,为了能使这些组件有一定的标准,降低开发难度,他
4、们决定为Windows开发一套标准的、通用的TCPöIP编程接口,并使之类似于UNIX下的Sockets,这一接口迅速被所有的软件商所接受,包括Microsoft与IBM。到1994年,它被正式制定成一项标准,称为WindowsSockets或称WINSOCK,并通过C语言的动态连接库方式提供给用户及软件开发者。我们现在看到的Windows下的Internet软件都是在WINSOCK基础下开发的。随着Windows95推出,WINSOCK已经被正式集成到了Windows系统中,同时包括了16位与32位的编程接口。W
5、INSOCK的实现一般都由两部分组成:开发组件和运行组件。开发组件是供程序员开发WINSOCK应用程序使用二、套接字的两种形式的,它包括介绍WINSOCK实现的文档、WINSOCK应用程序接口(API)引入库和一些头文件。运行组件是WINSOCK应套接字是通信端点的一种抽象,它提供一种发送和接收[1]用程序接口的动态连接库(DLL),文件名为WINSOCK.DLL数据的机制,在Windows套接字中。它有两种形式:数据报应用程序在执行时通过装入它来实现网络通信功能。套接字(DatagramSocket)和流式套接字
6、(StreamSocket).流最初,WINSOCK1.1版是专门为Internet设计的,现在式套接口采用的是传输控制协议TCP,它提供了双向的,有的2.x版已经不再限于Internet和TCPöIP协议,它通过提序的,无重复并且无记录过界的数据流服务,在这种方式下,供扩展的SPI编程接口,把自己的应用范围扩大到现存的和两个通讯的应用程序之间先要建立一种虚拟的连接,流方式正在出现的各种网络和协议,包括PSTN、ISDN、无线网、所有的特点的是:通讯可靠,对数据有校验和重发的机制,通常用的局域网协议、异步传输模式A
7、TM等等,并且允许应用程序来作数据文件的传输如ftp、telnet等,适合于大量数据的传对所建立连接的可靠性、冗余度和带宽进行控制。所以掌握了输。WINSOCK编程,就等于掌握了Windows环境下网络编程的数据报套接口采用的是用户数据报协议UDP,它建立在a王广伟山东大学电子工程系硕士研究生济南250100a李维钊山东大学电子工程系济南250100·35·MicrocomputerApplicationsVol.16,No.5,2000开发应用微型电脑应用2000年第16卷第5期IP协议上,提供无连接数据报传输,
8、支持双向的数据流,但并联系在一起,再调用listen()使套接口做好侦听的准备,并规不保证是可靠,有序,无重复和。也就是说,一个从数据报套接定它的请求队列的长度,之后就调用accept()来接收连接,客口接收信息的进程有可能发现信息重复了,或者和发出时的户在建立套接口后就可调用connect()和服务器建立连接,连顺序不同。数据报套接口的一个重要特点是它保留