前言
从本科开始学习c语言到现在已经好几年了,由于自己非常喜欢编程,除了课题外平时也喜欢写些小程序,到目前为止也写了不少代码了。但是一直没有养成随手记录的习惯,而编程中好多琐碎的东西很难记住,导致有时再次用到某个技术或功能时不得不翻出以前的代码查看,很是麻烦。现在决定开始在这里进行一些记录总结,分享一些经验。就从最近几个月业余时间做的一个自娱自乐的小项目开始吧。
几个月前开始学习socket编程,突然就萌生了做一个远程matlab计算程序的想法(可能是当时正好接触到matlab计算引擎吧,还有就是我学东西比较喜欢通过一个有点儿实际用途的小项目或小程序来学,边学边做比较有意思)。没想到几个月下来竟坚持完成了这个突如其来的想法,整个项目主要实现了远程matlab计算的功能,主要包括服务端程序、服务管理程序、移动客户端(Android)和PC客户端4个程序还有协议设计、数据库设计等内容。
本篇是一个综述,项目具体细节以及开发中遇到的问题在后面的文章中会陆续介绍。
由于本人好多东西都是边学边做,有些处理或技术可能用的不合适甚至错误,希望有好心网友看到能批评指证,先在此谢过了。
结构
如下图:
服务端程序
服务端程序采用win32。由于不需要界面本来打算使用控制台程序,可是控制台程序还是有个窗口,很可能被别人不小心关掉(实验室的电脑),因此最终选择了win32窗口程序而不显示窗口,这样程序便可完全后台运行了(任务管理器中显示)。而对服务程序的控制则用另一个单独的管理程序来实现。服务端程序主要包括以下内容:
- 使用matlab计算引擎计算客户端传来的命令,生成文本结果与图片结果
- 协议实现
- 用户注册
- 用户操作(认证、修改密码、忘记密码等)
- md5加密
- 命令过滤
- smtp邮件操作
- 数据库操作
- 日志、配置等
服务管理程序
服务管理程序采用MFC框架实现,用于管理服务端程序,基本功能如下:
- 启动停止服务端程序
- 显示当前在线用户
程序界面如下图
Android客户端
当然是Java啦,基本功能:
- 执行命令并显示文本或图片结果
- 用户相关操作(注册、登录、修改密码等)
- 设置操作
其中命令界面如下:
PC客户端
PC客户端使用MFC,并做了界面美化。除了与移动端相同的部分外其他功能如下:
- 可以选择本地计算引擎(不能绘制函数曲线)
- 独立的悬浮计算面板,使用全局快捷键调出
程序主界面与计算面板界面如下:
协议、数据库
协议是整个项目应用层协议的设计,数据库使用mysql,包括用户与命令过滤,后面都会单独介绍。
源代码随着后面介绍会陆续提供。
本文原文链接 http://blog.youkuaiyun.com/yanglx2022/article/details/46401685
作者从本科开始学习C语言,通过实践自娱自乐的小项目,最近几个月专注于Socket编程,成功实现了远程Matlab计算程序。项目包括服务端程序、服务管理程序、移动客户端(Android)和PC客户端,涉及协议设计、数据库设计等多个方面。文章详细介绍了项目的整体结构和各部分功能,以及开发过程中遇到的问题与解决方案。
909

被折叠的 条评论
为什么被折叠?



