梁 岩
(云南大学信息学院 云南 650091)
Socket是网络中的应用程序相互发送请求和回答的接口,它是实现网络通信的基础。socket也叫做“套接字”,通信链中的每个连接都由两个套接字组成,套接字可以描述TCP/IP连接的IP地址和端口。由于每种连接的启动方式存在差异,并且套接字连接的目标不同,所以套接字实现全部网络连接的流程可分为:服务器监听、客户端请求、连接确认。服务器监听是指服务器端的套接字不与客户端套接字绑定,而是实时地监控网络的状态,等待与发送请求的客户端进行连接。客户端请求是指客户端套接字提供将要连接的服务器端套接字的地址和端口,通过这种方式达到与服务器建立连接的目的。
Socket通信是计算机进行网络通信的基本方法之一。在计算机中各种应用程序可以通过调用socket函数来建立网络通信连接。目前,客户/服务器(C/S)模式在各种应用程序的网络通信中被广泛采用,使用socket实现应用程序网络通信的步骤可分为:
客户端欲与服务器端建立网络通信,首先客户端需要建立一个 socket,利用 socket()函数对本身以及需要建立连接的服务器做出描述,在协议族中明确将要进行连接的服务器端的地址和端口号。然后客户端通过connect()函数向服务器端发送连接请求,等待服务器端确认描述信息并作出相应的反馈应答。当服务器端给予有效的应答之后,客户端和服务器就成功建立了网络连接,这时两者之间可以根据预先确定的目的进行数据交互通信。当数据的传输或使用完成之后,客户端还需要通过close操作关闭本地 socket连接。至此,客户端的网络通信步骤才算完全完成。
建立网路通信连接时,服务器端需要配合客户端做出对应准备和应答。服务器端也需要建立 socket,在调用 socket()函数之后还应调用listen()函数实现对整个网路中连接请求的监听。当服务器端监听到来自某客户端的连接请求之后,它会调用 accept()函数用以接收检测到的连接请求,同时也给客户端发送接收请求的信息。成功建立网络通信连接时,客户与服务器之间就能够进行网络读写操作,共享和交流双方的数据资源和信息。同样的,在完成网络通信之后服务器端也要关闭同客户端之间的Socket连接。服务器端回到初始的监听状态,继续等待来自客户端的连接请求。
Socket包括两种类型:流式socket和数据报式socket。流式socket应用于面向连接的网络通讯而数据报式socket用于无连接的通讯方式。两种socket在编写socket程序时都需要调用socket函数,socket函数原型中包含地址和协议。在socket数据结构中,需要包含通讯连接协议、本地主机协议地址、本地主机进程协议端口、远端主机协议地址和远端进程协议端口这五种基本信息。
当前,Socket通信技术的较为成熟,传输稳定、快速。结合客户/服务器的通信模式,通过以太网口使用 TCP/IP协议能够进行网络通信,实现对远程终端的监控作用。在Socket网络通信技术广泛用于控制系统的背景下,以电梯控制装置为服务器端的C/S模式网络通信控制系统的设计和应用越来越多。
该电梯控制系统中,由网络通信接口和电梯控制器组成服务器端。网络通信接口是实现以太网物理传输的路径,而电梯控制器主要负责收集电梯的实时运行信息、建立网络通信协议以及控制电梯的运行。通过DSP初始化本地的网卡,在网卡的各种寄存器中获得网卡的地址和执行收发网络数据包操作。系统中的客户端可由固定电脑或者移动设备组成,使用计算机中的网卡进行物理传输,通过专用的程序软件管理和控制与服务器端建立的网络通信。
电梯控制系统的客户端和服务器建立网络通信是双方按照步骤相互交流和配合的过程。服务器端预先启动,建立socket并初始化本地端口,监听网络中的连接请求。当网卡得到来自客户端的连接请求,将会向电梯控制器传递连接请求信息。在接受连接请求的同时建立一条新的连接通道,并发送给客户端连接的信息。客户端确认连接信息之后,服务器将等待客户端接下来发出的服务请求。服务器完成服务请求的处理,形成相对应的回答并发送给服务端,再次等待客户端接收、确认和发送请求。然后服务器会根据已确定的服务请求,协同电梯控制器开展一个新的工作进程,实现对电梯的监控。完成这项服务请求之后,服务器端将会关闭连接、回到监听状态,等待新的连接请求和客户指令。相应地,客户端启动后根据需要向服务器端发送连接请求,和远程电梯控制器建立连接。连接到指定的服务器端口之后,客户端继续向服务器传达服务请求、控制命令。服务器接收和处理请求或命令后,客户端可以再次向服务器发送新的连接请求。所有请求完成之后,客户端关闭连接停止网络通信。该网络通信过程如图1所示:
Socket通信是计算机网络通信的基本方法,其优点是传输速度快、稳定。运用Socket网络通信技术能够实现对电梯的远程监控,实时地监视电梯的使用状态,控制电梯的运行,从而有效地进行电梯的管理,也方便于电梯的维修工作。
[1]王平立,王玲. 电梯远程监控网络系统设计与实现[J]. 计算机系统应用. 2002(07).
[2]李伟光,罗玮韬,王勇,刘铨权. 基于DSP的嵌入式系统以太网接入技术研究[J]. 机电工程技术. 2009(04).
[3]徐爱华,全书海. Socket网络通信及其在电梯监控系统中的应用[J]. 2006(11).