版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
物联网应用系统设计智能家居项目单片机LED应用服务程序网关程序运程控制LED灯的项目智能家居项目添加标题服务器程序基于服务器的作用,分析服务器的功能有:(1)通过TCP协议接收网关转发的LED灯状态信息。(2)通过TCP协议发送控制信息到网关,经网关转发下行。(3)能通过浏览器输入,发送控制信息。(4)能通过浏览器查看历史状态信息和控制信息。(5)有数据存储的功能,能保存上传的LED灯状态信息和下发的控制信息。服务器功能2通过Java语言操作数据库记录数据通过URL地址发送、显示数据教学目标实现服务器功能1服务器Socket接收3添加标题难点服务器的接收数据记录到数据库重点Socket接收和发送Socket接收和发送服务器Socket接收和发送
01网关作为Socket服务端连接(1)创建SocketServerServerSocketserverSocket=newServerSocket(1002);(2)accept()等待接收请求(3)创建连接Socket服务Socketserver=serverSocket.accept();
网关作为Socket客户端连接(1)创建Socket服务,请求连接Socketclient=newSocket("192.168.1.136",1002);网关作为服务端/客户端接收数据InputStreaminFromServer=client.getInputStream();intn=inFromServer.available(); inFromServer.read(res);网关作为服务端/客户端发送数据OutputStreamoutToServer=client.getOutputStream(); outToServer.write(data.getBytes());服务器的Socket接收发送功能
为gs-mysql-service-main这个实例增加Scoket客户端的功能,使它能够连接网关上的Scoket服务端,达到与之通信的目的。
在工程包中新建一个java类GreetingClient.java,用于处理Socket的通信问题。通过Java语言操作数据库记录数据02通过java操作数据库java程序操作数据库增、删、改、查把Socket客户端接收到的数据存储到数据库。通过java操作数据库
添加一个实体类LEDData,它会在程序连接的数据库中生成一个数据表LEDData,里面有三个属性,分别是id、data、datetiem。分别存放记录id号、接收到的数据、接收数据的时间。UserRepository接口是提供操作LEDData表的方法,代码如下:通过java操作数据库publicinterfaceUserRepositoryextendsCrudRepository<LEDData,Integer>{
}通过java操作数据库Socket通信接收到数据后,使用对象的setData和setDatetime的方法保存对象ledData的属性data和datetime的值,最后使用save方法,把ledData属性的值保存到数据库表的字段中。接收数据并储存运行效果通过URL地址发送、显示数据03发送控制信息
在GreetingClient类中DataOutputStreamout是私有属性,包内其它类不能调用该属性。要有一个公有的方法,获得DataOutputStreamout这一个输出流。public
OutputStreamgetOut(){
return
out;
}通过URL地址发送信息访问URL地址Socket发送信息webjava参数传递@RestController注解放到控制器类上。
@GetMapping("/greeting")注解函数运行的请求。@RequestParam注解将请求参数绑定到控制器的方法参数上。
@GetMapping("/greeting") publicGreetinggreeting(@RequestParam
Stringname){
returnname; }通过URL地址发送信息
在MainController这一个控制器类中编写一个函数,使之映射到URL上,通过访问URL链接运行函数。该函数实现的功能是,使用客户端GreetingClient类的输出流OutputStreamout把URL链接中输入的开关灯信息发送到服务端。
@GetMapping(path="/controlLED")
public
@ResponseBody
StringcontrolLED
(@RequestParam
StringLED){
try
{
greetingClient.getOut().write(LED.getBytes());
return
"发送成功";
}catch
(IOExceptione){
//TODO
Auto-generatedcatchblock
e.printStackTrace();
}
return
"发送不成功";
}通过URL地址发送信息通过URL地址查看记录
在MainController控制器类中编写一个函数,使之映射到URL上。通过浏览器输入URL地址,运行函数,直接返回数据库的记录到页面。编写函数前,先在MainController类中使用@Autowired注入LEDDataRepository对象。@GetMapping(path="/findAll")
public
@ResponseBody
Iterable<LEDData>getAll(){
//ThisreturnsaJSONorXMLwiththeusers
retur
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年个人自我工作总结及评价(4篇)
- 2026广东中山市黄圃镇永平社区居民委员会见习人员招聘1人备考题库带答案详解(新)
- 2026云南玉溪澄江市小天鹅幼儿园招聘4人备考题库附答案详解(基础题)
- 2026上半年安徽事业单位联考临泉县招聘89人备考题库附答案详解
- 个人总结与自我评价参考模板(三篇)
- 2026吉林工商学院招聘高层次人才及博士人才67人备考题库附答案详解(考试直接用)
- 2026上半年贵州事业单位联考凤冈县招聘49人备考题库及完整答案详解一套
- 2026四川大学华西临床医学院、华西医院专职博士后招聘备考题库参考答案详解
- 2026年上半年通化市事业单位公开招聘应征入伍高校毕业生备考题库带答案详解(培优a卷)
- 2026内蒙古鄂尔多斯鄂托克旗农牧技术推广中心科研助理招聘1人备考题库含答案详解(模拟题)
- 【网络谣言的治理路径探析(含问卷)14000字(论文)】
- 2024年新安全生产法培训课件
- 卷闸门合同书
- 煤矿运输知识课件
- (全册完整版)人教版五年级数学上册100道口算题
- 人口信息查询申请表(表格)
- 一年级上册数学期末质量分析报告
- 一点一策模板课件
- 2023年冲刺-副主任医师(副高)-学校卫生与儿少卫生(副高)笔试题库3含答案
- 看图猜成语(有趣又好玩PPT版)
- JJG 971-2019液位计
评论
0/150
提交评论