欢迎来到天天文库
浏览记录
ID:34483195
大小:649.27 KB
页数:30页
时间:2019-03-06
《第14章 winsock网络通信开发》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第14章WinSock网络通信开发Windows应用程序可以实现无限的网络功能,这些功能都建立在WinSock接口的基础上。WinSock是WindowsSockets的简称,也称为Windows套接字,是微软根据BSDUNIX操作系统中流行的Berkeley套接字规范而实现的一套Windows系统环境下的网络编程接口。本章将具体介绍在VisualC++中,基于Winsock接口进行网络通信程序开发的基础知识。14.1网络通信与WinSock基础网络通信是指应用程序与网络中其他系统的应用程序之间进行的通讯。在介绍网络通信程序的开发之前,首先简单介绍一下网络通信和Wi
2、nSock的基本概念。14.1.1WinSock的基本概念Windows环境下网络编程的规范——WindowsSockets(简称WinSock)是Windows环境下应用广泛的、开放的、支持多种协议的网络编程接口。经过不断完善,在Intel、Microsoft、Sun、SGI、Informix、Novell等公司的全力支持下,它已成为Windows网络编程事实上的标准规范。WindowsSockets规范用于提供给应用程序开发者一套简单的API,并让各家网络软件供应商共同遵守。任何能够与WinSock兼容实现协同工作的应用程序就被认为是具有WinSock接口,并称
3、这种应用程序为WinSock应用程序。WinSock规范定义并记录了如何使用API与Internet协议族(IPS,通常指的是TCP/IP)连接。尤其要指出的是,所有的WinSock实现都支持流套接字和数据报套接字。应用程序通过调用WinSock提供的API实现相互之间的通讯,而WinSock又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。在ISO的OSI网络7层协议中,WinSock主要负责控制数据的输入和输出,也就是传输层和网络层。它屏蔽了数据链路层和物理层,给Windows环境下的网络编程带来了巨大的变化。14.1.2TCP/IP协议与WinSo
4、ckInternet建立在TCP/IP协议基础之上,采用了TCP/IP的网络体系结构。TCP/IP不是一个简单的协议,而是一组小的、专业化的协议,包括TCP、IP、UDP、ARP、ICMP以及其他的一些被称为子协议的协议。大部分网络管理员将整组协议称为TCP/IP,有时简称为IP。其中的几个重要协议介绍如下。ó266ó第14章Winsock网络通信开发ßTCP(TransmissionControlProtocol,传送控制协议):提供给用户进程可靠的全双工字节流面向连接的协议,主要为用户进程提供虚电路服务,并为数据可靠传输建立检查机制。大多数网络通信程序使用TCP
5、。ßUDP(UserDatagramProtocol,用户数据报协议):提供给用户进程的无连接协议,用于传送数据而不执行正确性检查。ßIP(InternetProtocol,网间协议):负责主机间数据的路由和网络上数据的存储,同时为ICMP、TCP、UDP提供分组发送服务。用户进程通常不会涉及这一层。TCP/IP协议的核心部分是传输层协议(TCP、UDP)、网络层协议(IP)和物理接口层。这三层通常是在操作系统内核中实现的,因此用户一般不涉及。编程界面一般有两种形式:一是由内核心直接提供的系统调用;二是使用以库函数方式提供的各种函数。前者为核内实现,后者为核外实现。
6、用户服务要通过核外的应用程序才能实现,所以要使用套接字(WinSock)来实现。TCP/IP协议核心与应用程序的关系如图14-1所示。应用程序1应用程序2网络编程界面,例如WindowsSockets网络通讯协议服务界面,例如TCP/IP操作系统,例如Windows物理通讯介质图14-1TCP/IP协议核心与应用程序的关系14.1.3WinSock通信与C/S结构WindowsSockets通信的基础是套接字(Socket)。与文件操作类似,当要读写一个文件时,必须用一个文件对象(文件指针或文件句柄)执行这个文件。而Socket就是一个在应用程序之间用于读(接收信息
7、)或写(发送信息)的网络对象。WindowsSockets支持的套接字类型包括流式套接字(SOCK_STREAM)和数据报套接字(SOCK_DGRAM)。ß流式套接字定义了一种可靠的面向连接的服务,实现了无差错无重复的顺序数据传输。ó267óVisualC++从入门到精通ß数据报套接字定义了一种无连接的服务。数据通过相互独立的报文进行传输,是无序的,并且不保证可靠、无差错。对于要求精确传输数据的WindowsSockets通信程序,一般采用流式套接字。采用流式套接字通信的一个最典型的应用就是客户机/服务器(C/S)模型。这也是在TCP/IP网络中,两个进程间相互
此文档下载收益归作者所有