VC++环境下基于WinSock的网络通信
引言
随着Internet的迅猛发展,网络通信应用程序的开发成为研究热点。Windows环境下进行通讯程序设计的最基本方法是应用Windows Sockets实现进程间通讯。
1 TCP/IP协议、应用程序与套接字
TCP/IP协议是众多网络协议中比较完善的一种,它的核心部分是传输层协议(TCP,UDP)、网络协议层(IP)和物理接口层。 这三层通常在操作系统内核中实现。操作系统的内核是不能为用户所感受到的,一般用户感受到的只有应用程序。应用程序通过程序界面与操作系统内核打交道。TCP/IP网络环境下的应用程序是通过网络系统编程界面套接字Socket(在Windows操作系统下称之为Winsock)来实现的。Socket构成了核心协议的用户视图。通过Socket,应用程序可访问通信协议。TPC/IP协议核心与应用程序之间的关系如图1.
图1 应用程序与Windows Sockets的关系
套接字(Socket)是网络通信的基本构件。套接字是可以被命名的通信端点,应用程序通过它在网络上发送和接收数据。每个套接字都有其类型,并有一个与之相连的进程。TCP/IP提供3种类型套接字:
1.1 流式套接字(SOCK—STREAM)
该接口提供一个面向连接、可靠的数据传输服务,数据无差错、无重复地发送,且按发送顺序接收。 内设流量控制,避免数据流超限;数据被看作字节流,无长度限制。流式套接字提供了一种可靠的面向连接的数据传输方式,如果想发送大批量数据或想让数据按顺序无重复地到达目的地,流式套接字最为有用。本文使用流式套接字。
1.2 数据包套接字(SOCK—DGRAM)
该接口提供一个无连接服务。数据包以独立包形式被发送,不提供无错保证,数据可能丢失或重复,并且接收顺序混乱。数据包套接字比较适用于数据包或记录型数据的传输,数据包的发送不能得到保证,而且不能排序到达。
1.3 原始式套接字(SOCK—RAW)
该接口允许对较低层协议,如IP、ICMP直接访问。
套接字至少在客户机/服务器模式;点对点模式;远程程序调用(RPc)三种通信环境下广泛应用。
2 Windows Sockets介绍
Sockets最初只是UNIX系统中最流行的网络通信接口之一。1992年制定出Windows Sockets规范1.0版。 目前实际应用中的Windows Sockets规范主要有1.1版和2.0版,其中1.1版只支持TCP/IP协议,而2.0版支持多协议,并具有良好的向后兼容性。 Windows Sockets 是MicrosoftWindows的网络程序设计接口,使在Windows下开发高性能的网络程序成为可能。
Windows Sockets实现一般由两部分组成:开发组件和运行组件。 开发组件包括介绍WindowsSockets实现的文档、Windows Sockets应用程序接口(API)引入库和一些头文件。 运行组件是Windows Sockets应用程序接口的动态链接库(DLL),文件名为WINSOCK.DLL,应用程序在执行时通过装入它实现网络通信功能。
相关文章
- 2022-07-08安邦信变频器在建筑大厦集中供热中的应用
- 2023-11-02显微成像测量精密狭缝的重复精度
- 2023-01-10基于SI473X的RDS功能设计与实现
- 2024-10-31基于网络的计量管理模式研究
- 2024-08-23一种新型旋转滚筒表面温度测试仪
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。