服务器发送消息到客户端互斥,小车远程监控系统 课程设计

《小车远程监控系统 课程设计》由会员分享,可在线阅读,更多相关《小车远程监控系统 课程设计(17页珍藏版)》请在人人文库网上搜索。

1、课程设计n报告(2016/2017学年 第一学期)小车远程监控系统计算机科学与技术孙烨B13040402邹志强计算机学院、软件学院2017.01.03-01.12学生姓名班级学号评分内容平时成绩设计成果设计报告验收答辩评分等级指导教师简短评语指导教师成绩评定表专业计算机科学与技术评分标准优秀良好中等认真对待课程设计,遵守实验室规定,上机不迟 到早退,不做和设计无关的事设计的科学、合理性功能丰富、符合题目要求界面友好、外观漂亮、大方程序功能执行的正确性程序算法执行的效能设计报告正确合理、反映系统设计流程文档内容详实程度文档格式规范、排版美观简练、准确阐述设计内容,能准确有条理回答各种问题,系统演。

2、示顺利。指导教师签春名日期2017-01-12备注评分等级有五种:优秀、良好、中等、及格、不及格小车远程监控系统、 课题内容和要求服务器端:1、利用 linux C 实现服务器;2、服务器端使用多进程实现多客户网络服务;3、服务器多个进程之间需要使用IPC通信(进程间通信); 客户端:1、在 linux C 下实现网络客户端; 为了实现同时读阻塞的键盘和阻塞的网络,要求使用多路 IO 实现同时阻塞的读键盘和读网络。服务器客户端的网络通信:这里要求采用TCP协议进行通信,实现所要求的 S/C模式,并且要求实现多客户服务。二、需求分析服务器端:1、服务器端利用随机数模拟向串口读取传感数据,需要模拟。

3、的传感数据要求有:温 度、湿度、光照。2、服务器利用网络接收客户端发送过来的设备控制信号,通过写驱动,实现对底层 硬件的控制,这里使用打印显示的方式模拟。3、在进程之间 IPC 通信时,要求使用文件锁或信号量实现资源保护。 客户端:1、客户端能够通过网络通信实现接收服务器端传输过来的传感数据,并将传感数据 打印到屏幕上显示。2、客户端能够从键盘输入控制信号,并且通信将控制信号发送给服务器。3、客户端要求实现控制信号有,开灯、关灯,开空调、关空调、开启小车、停小车等。三、概要设计服务器客户端四、详细设计 (格式:宋体,4号,加粗,两端对齐)各个算法实现的源程序(可以是一组源程序,每个功能模块采用。

4、不同的函数实现),源程 序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上 清晰的程序注释。头文件(cs.h)Times New Rxo man#in elude #i nclude #in elude vuni std.h #in elude #i nclude #i nclude #i nclude vsys/t yp es.h #in clude #in clude varpa/in et.h #in clude vassert.h #in clude vsig nal.h#include #define SER_PORT 5010 #define SER_I。

5、P 127.0.0.1 #define MAX_SIZE 2048 #define MAX_CONNECT 20 /最大可连接的客户端数量 #define CHPTH_COUNT 3 #define PTH_EIXT 1 int skfd = 0;int cfd = 0;int ret = 0;void err_fun(const char *const file_name, int line, const char *const fun_name, int err_no) fprintf(stderr, %s %d %s: %sn, file_name, line, fun_name, st。

6、rerror(err_no);exit(-1);void signal_fun(int a)int ret = shutdown(skfd, SHUT_WR);if(ret scanf(%s,data_send);flag=atoi(data_send);if(flag6|flag%sn, data_recv);memset(data_send, 0, MAX_SIZE);memset(data_recv, 0, MAX_SIZE);sleep(1.5);return 0;服务器端:#include cs.h int count_client= 0; /存储当前的客户端数量 static vo。

7、id pthread_fun(void * cfd)count_client+;int tempfd= 0;int i_recvBytes;char data_recvMAX_SIZE=0;char data_send MAX_SIZE=0;strcpy(data_send, 已执行操作 );struct pthread_arg *p = (struct pthread_arg *)cfd;int fd = p-fd;while(1)printf(n 等待请求 .n);if(glb_va.pth_exit_flag = PTH_EIXT) pthread_mutex_unlock(&glb_v。

8、a.mutex);break;i_recvBytes = read(fd,data_recv,MAX_SIZE);if(i_recvBytes = 0) printf( 客户 %d 下线 n,fd-3);break;if(i_recvBytes = -1)fprintf(stderr,读错误!n);break;printf( 从客户 :%d t 收到控制序号 %sn,fd-3,data_recv);if(strcmp(data_send,quit) = 0) printf( 拒绝请求 !n);break;pthread_mutex_lock(&glb_va.mutex);/ 增加互斥锁slee。

9、p(3);time_t tim;float illumi natio n=0,humid=0,tem perature=O;/ 定义湿度,光照,温度char t16;if(atoi(data_recv)=0&atoi(data_recv)3*;*倉倉衣*3*;* 倉;tcjfc* *;*1按下0时服务器收到消息:等待请求 从客户收到控制序号0等待请求.按下0时服务器显示车内环境信息:请输人控制序号-0服务器消息 2车内环境信息光照44.0 湿度45.0 温度Gti服务器收到控制序号等待请求-从客户收到控制序号客户端输入1,并收到服务器信息:空调已 经关闭:请输入控制序号-1 腑务器消息亠空谓已。

10、关闭服务器收到序号5:等待请求.从客户:1收到控制序号等待请求服务器连接第二个客户端时:等待请求现在已经幵始连接客户2 等待新的a接.第二个客户端下线时,服务器显示:等待请求.客户2下线 停止当前连接客户端显示小车已启动请績入控制序号-5服隽器消息 小车已启动 *3t;*3t;*3t; * *岩丸眾家家家家家家家家當家家 家家* 事帝审帝帝菇 需卓 LS iS * iS iS * + + *+*+*+* + + + *请选择序号控制智能小车 车内环境信息 1#关因小车a週 2打幵小车空调 3关闭小车灯4 打幵小车灯5 启动小车6,停止小车该客户端退出:* 車* * 拿*拿!请输入控制序号-CS。

11、huts Down!Iuoyang(iL-Y;-/Desktop/car_f inal$当两个客户端同时向服务器发送消息时,开启的互斥锁使得当前面的信息处理完毕时再处 理第二个客户端。J -1 nri.nl据 limF*T费i 甲旳figr.hndT月UBBBZ -F ?4?Q r-.nynng(J4i E9叶户户1*从从苒将11求. 从書户:3 从書户;1谓户户褂从从 csktDpr-car-hrul 玄眸|W| HUI El時黠I麻唧帼材用G,爭止小车 SltrUCifl 出*it*- + *- + *- + *HWAKWffV -?0I槽4 *典-Y:-山”|如丿肆匚刖兰申F) 列E了阳。

12、i埒弼斗rtBlH)请whis制序V -s I收到a刖呼号a收樓1号2l + -i - + + + -. - + + + - *&*& + *需冒需訂*. r杞白 n,产1#讥叵I曲沁n luftyM.- n伽丫日口rn iii&fw呼血.範于机制的系列IHHiS度究V8统的研计与与EPROM的工艺和制程方法及对良率的影响研究六、调试过程中的问题1、当两个客户端同时向服务器发送消息时,会同时向服务器端写入,弓I起混乱。解 决的办法是加入了互斥锁。开启的互斥锁使得当前面的信息处理完毕时再处理第二个客户 端。2、 碰到了一些基本语法错误,比如字符串之间的比较,复制,以及sprintf 函数的 学习。

13、使用将多个数据拼接传输到客户端,通过查阅网络信息得以解决错误。3、初步传感器的车内环境信息:温度、光照、湿度是客户端自己生成并显示的,经 过改进,将生成的数据置于服务器并发送至客户端,实现真正的模拟传感器收发。七、参考文献和查阅的资料上课所用实例代码八、程序设计总结这次程序设计,我实现了在linux操作环境下进行一个服务器和多个客户端之间的通 信,利用传感器传输小车内的环境信息,利用线程服务多个客户端,用 read和write函数 实现数据传输。和同伴的互助之下,完成了这个小程序,并且我深刻感悟,重要的不是编 码能力,而是团队协作能力,并且在想法的交流中摩擦出了智慧的火花。蚕三二三二一二于种一。

14、三一三三二三g三-三压三wwoww 一三一三三三二三二于三三g 一二一二于三ww -IP19-10亠19-|19龙19龙19芋二19-19龙19龙19-10亠19-|19龙-1$亠 基单基基 基基基模一 基基基基 基基单基品实基基基nm基P.01234567890126789- ,卜- ; 单提基基基96基基基基 基基基基基停自校正( STR )调节器P/IP协议栈的实现 像采集与处理技术的研究 的的系统I究与开发监及究,2测其仪激开单光发片器机的实手持现控制面板的研制 器究歇的式研浊制度仪的研制 设火开计花发线切割 机 床短循环走丝方式研究 应检计用测与仪研究的研制仪制传机-能机据的采量研检。

15、的究制仪测设仪的计研的和制研应制用研系制统的研制T研究象研究究与实现究研究 系源载的统装的探研置究研究究 表究系面统污染测量仪的研制 统究究刃计的磨机设设控计备制与的器实数的现控研改制造 iHS!术研议转换器 技数器学术据技方的采术法应集的实用研系践研统究究及实现跟踪【信研具检有测数系据统存的振动式播种单应拟片用教机学实控验制中系的统应用研究 应阻与码用炉开自上发动的译应码用系研统究设计与研究 的II究系统研究究与实现 的与功研实能究现的研究与实现 用系统I设计与实现 用的1究与应用实现与应用 Sib合保保护系统单片机 主动控中控的制应系用统的研究计子血压计的设计统的系数测试仪的研制I研计与实现 的研制器的研究应用研究目研究报告,项目设计,项目建议书,项目可研报目研究报告,项目设计,项目建议书,项目可研报。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值