首页 理论教育 零点起步:Windows平台下客户端分析与实现

零点起步:Windows平台下客户端分析与实现

时间:2023-10-31 理论教育 版权反馈
【摘要】:下面介绍的是在Windows平台下,基于无线网络的远程视频监控的客户端的实现。这里主要是参考了spcaview的实现机制,对网络视频流进行传输,并且调用Windows本地平台的SDL库来进行显示。SDL支持主流的操作系统,包括Windows和Linux。图15-8 程序的工作流程图1)首先,初始化Winsock。图15-9 两种视频监控方式比照下面可以使用基于SSH协议的Windows平台下的开源客户端PuTTY,通过无线网络登录到开发板上,对嵌入式系统进行远程维护和实时控制。

零点起步:Windows平台下客户端分析与实现

下面介绍的是在Windows平台下,基于无线网络的远程视频监控的客户端的实现。这里主要是参考了spcaview的实现机制,对网络视频流进行传输,并且调用Windows本地平台的SDL库来进行显示。

SDL是Simple DirectMedia Layer(简易直控媒体层)的缩写。它是一个跨平台的多媒体库,以用于直接控制底层的多媒体硬件的接口。这些多媒体功能包括了音频、键盘和鼠标(事件)、游戏摇杆等。当然,最重要的是提供了2D图形帧缓冲(Frame Buffer)的接口,以及为OpenGL与各种操作系统之间提供了统一的标准接口,以实现3D图形。

SDL支持主流的操作系统,包括Windows和Linux。它也支持其他平台(如BeOS,MacOS、MacOSX、FreeBSD、NetBSD、OpenBSD、BSD/OS、Solaris、IRIX和QNX等)。虽然SDL时常被比较为跨平台的DirectX,然而事实上SDL是定位成以精简的方式来完成基础的功能,它大幅度简化了控制图像、声音和输入/输出等工作所需撰写的代码。

这里主要分析程序的工作流程图,如图15-8所示。

978-7-111-33316-6-Chapter15-23.jpg

图15-8 程序的工作流程图

1)首先,初始化Winsock。

978-7-111-33316-6-Chapter15-24.jpg

2)接下来,初始化SDL。

978-7-111-33316-6-Chapter15-25.jpg

3)建立套接字。

978-7-111-33316-6-Chapter15-26.jpg

4)绑定端口。

978-7-111-33316-6-Chapter15-27.jpg

5)进行监听。

978-7-111-33316-6-Chapter15-28.jpg

6)读写sock,获取图像信息。(www.xing528.com)

978-7-111-33316-6-Chapter15-29.jpg

7)获取系统时间。

978-7-111-33316-6-Chapter15-30.jpg

8)调整图像大小,调用SDL显示。

978-7-111-33316-6-Chapter15-31.jpg

当用户按下键盘上的<s>键时,通过SDL截获相应的请求,并将当前的一帧图像以系统时间命名保存到磁盘上。

978-7-111-33316-6-Chapter15-32.jpg

通过无线网络连接到开发板上,两种视频监控方式比照如图15-9所示,该图是同时开启两种视频监控方式并且进行对比的截图。

978-7-111-33316-6-Chapter15-33.jpg

图15-9 两种视频监控方式比照

下面可以使用基于SSH协议的Windows平台下的开源客户端PuTTY,通过无线网络登录到开发板上,对嵌入式系统进行远程维护和实时控制。基于SSH协议的远程管理和维护如图15-10所示。

978-7-111-33316-6-Chapter15-34.jpg

图15-10 基于SSH协议的远程管理和维护

其中,可以通过top命令来查看嵌入式Linux系统的进程运行状态以及系统负载。当系统出现异常状况时,可以使用kill命令发送信号终止相应的进程。通过cat命令可以查看系统日志,以便获取系统详细信息。通过调用/etc/rc.d/init.d目录下的脚本可以开启或者关闭网络服务、视频服务器、Web服务器以及SSH服务器,甚至可以进行重启操作。这样,方便了管理员远程登录对开发板进行相应的维护,而不必亲自到现场通过串口对开发板进行操作。

这里,由于PuTTY无法直接使用ssh-keygen生成的私钥,所以需要通过PuTTYgen来进行私钥的格式转换。这样就可以直接通过私钥来进行远程登录。采用密钥的好处就是可以对通信过程中的所有数据进行加密,没有密钥是无法登录系统的,从而保证了整个通信过程的安全性。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈