本文的程序设计是基于TCP/IP协议的,使用客户机/服务器模式。本程序设计调试的网络环境为采用Windows XP中的 TCP/IP协议配置的局域网,服务器的的IP地址是“192.168.0.104”,通信端口可任意设置,本文设为4231。
2.1 通信平台程序的实现流程
服务器是控制机器人的主控制台,通过服务器可以控制机器人的爬行、检测以及转向等。本文中服务器端程序,主要是建立一个能够让客户端连接的端口,并通过监听,与需要连接的客户端建立连接,并与其进行数据信息通信,将机器人传感器获取的机器人的状态信息发送给客户端来实现远程信号处理,并接收来自的客户端的控制信息以实现对机器人的操控。
客户机端是对机器人进行远程控制的计算机,它通过请求与服务器建立连接之后,将控制信息传送给服务器端,服务器端根据控制信息实现对机器人控制。而且,客户机端还能够接受服务器传送过来的机器人状态信息,以便对机器人获取的信息进行处理。本文的客户机端程序通过Connect()与服务器建立连接,来达到相互通信的目的。
网络通信平台实现的流程图如图3所示。服务器端程序是通信平台的核心部分,本文的服务器端程序不仅可以实现与一个远程客户机端的单对单通信,而且可以与多个客户机端同时进行通信。客户机端程序相对于服务器端程序比较简单,没有了服务器端程序的监听程序和接受连接程序,但是比服务器端增加了连接程序。连接程序和监听程序是区别于服务器端程序和客户机端程序的标志。
图3 通信平台流程图
(1) 监听程序
Listen()(监听程序)是服务器程序区别于客户机端程序最主要的标志,服务器端通过监听程序来监听有没有客户机端请求连接。当有客户机提出连接请求,通过监听程序将连接请求发至服务器来建立两者之间的连接,服务器与客户机才能实现通信。监听程序还是区别使用了流式套接字或数据报式套接字的标志。监听程序的存在为网络通信提供了可靠、无差错的连接。
(2)连接程序
Connect()(连接程序)是客户端中所独有的程序,是向服务器端发送连接请求所编写的。连接程序在收到客户机端需要连接服务器的请求之后,就会发送所需要连接的服务器IP地址和服务器端口。发送之后会等待连接消息的反馈消息,来确认客户机端是否连接成功。
(3) 接受连接程序
Accept()(接收连接程序)是客户机端对应于客户机端连接程序而编写的,该程序可以实现对连接程序的反馈。当程序接收到客户机端程序发来的连接请求时,会对客户机反馈回连接是否成功的消息,而且该程序可以获取要求连接的客户机端的IP地址和端口,以便服务器端可以记录客户机端的连接状态信息。
(4)发送消息程序
Send()(发送消息程序)可以实现控制信息实时地从远程操作者一方发向服务器,而机器人的状态信息又通过各种传感器(如视觉传感器、力觉传感器等)获取后,由服务器反馈给远程客户端。
(5)接收消息程序
Receive()(接收消息程序)可以实现客户机或者服务器端接收来自对方发送的数据消息。该程序在服务器和客户机中都是一致的,配合发送消息程序实现了客户机和服务器之间的数据消息通信。
2.2 实验结果
本文的网络通信平台运行之后的界面输出图像如图4所示。