1 引言WWW_PLCJS@_COM%-PLC-技.术_网
Socket(套接字)是一种基于TCP/IP的编程接口。它采用客户/服务器通信机制,使客户端和服务器端通过Socket接口在网络上实现连接和数据交换。它提供了一系列系统调用,使用户可以方便地实现TCP和UDP等多种网络协议的通信。它使用户可以在网络协议上工作而不必对该网络协议有非常深入的了解。这样编写的程序可被迅速移植到任何支持Socket的网络系统中去。
WWcW_PLCJS_COM-PLC-技.术_网
Windows Sockets(即Winsock)是在Windows上进行网络通信编程的API接口,也是Windows网络编程的事实标准。WW.W_PLCJS_COM-PLC-技.术_网
客户机/服务器(Client/Server)模式是目前广泛使用的一种信息处理模式。它可以减少系统开支,将网络所连接的微机群信息处理性能大大提高,因为其分布式处理的特点,它可以提高系统的可靠性,此外,由于其采用模块化及开放式体系结构,使得它容易将不同的机器有效地连接在一起,易于系统的扩展升级,提高了系统的灵活性。正是上述特点,使得客户/服务器模式在计算机工业领域占有重要的地位,同时也被工业过程领域所借用,用于实时信息的传输和处理。WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
本文就如何利用Visual C++6.0开发基于Winsock的客户机/服务器模式的网络通信程序的问题进行了探讨。WWcW_PLCJS_COM-PLC-技.术_网
2 Winsock简介WW.W_PLC※JS_C,OM-PL,C-技.术_网
20世纪80年代初,加利福尼亚大学Berkeley将美国国防部高研署提供的TCP/IP集成到Unix中,并很快开发了TCP/IP应用程序接口(API),即Socket接口。90年代初,由Microsoft联合其他几家公司共同制定了一套Windows环境下的网络编程接口,即Windows Sockets规范。它是Berkeley Sockets的重要扩充,主要体现在它增加了一些异步函数和符合Windows消息驱动特性的网络事件异步选择机制。Windows Sockets规范是一套开放的、支持多种协议的Windows下的网络编程接口。目前Windows下的Internet软件基本都是基于Winsock开发的。Windows Sockets规范定义并记录了如何使用API和Internet协议族(TCP/IP协议族)连接。
WWW_PLCJS@_COM%-PLC-技.术_网
应用程序调用Windows Sockets的API实现相互之间的通讯。Windows Sockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。它们之间的关系如图1所示。WWW_PLCJS_COM-PLC-技.术_网
WWW_PL※CJS_COM-PLC-技.术_网
WWW_PL※CJS_COM-PLC-技.术_网
Socket实际在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有Socket接口的计算机通信。应用程序在网络上传输,接收的信息都通过这个Socket接口来实现。在应用开发中就像用文件句柄一样,可以对Socket句柄进行读、写操作。——可——编——程——控-制-器-技——术——门——户
使用Socket进行通讯的方式有下面的3种。WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
(1) 字节流套接字(Stream Socket):TCP/IP协议族中TCP协议使用此类接口,它提供面向连接的(建立虚电路)、无差错的、发送顺序一致的、包长度不限和非重复的网络信包传输。WWW_PL※CJS_COM-PLC-技.术_网
(2) 数据报套接字(Datagram Socket):TCP/IP协议族中的UDP(User Datagram Protocol)协议使用此类接口,它是无连接的服务,以独立的信包进行网络传输,信包最大长度为32kB,传输不保证顺序性、可靠性和无重复性,通常用于单个报文传输或可靠性要求不高的场合。WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
(3) 原始数据包套接字(Raw Socket):提供对网络下层通信协议(如IP协议)的直接访问,一般不是提供给普通用户的,主要用于开发新的协议或用于提取协议较隐蔽的功能。其中字节流套接字是最常用的套接字类型。plcjs.技.术_网
3 客户机/服务器模式WWW_PLC※JS_COM-PmLC-技.术_网
在TCP/IP网络应用中,通信的两个进程相互作用的主要模式是客户机/服务器模式,即客户端向服务器发出请求,服务器接收到请求后提供相应的服务。客户机/服务器模式在操作过程中采取的是主动请求方式。
P.L.C.技.术.网——可编程控制器技术门户
(1) 服务器方WWW_PLC※JS_COM-PmLC-技.术_网