`
younglibin
  • 浏览: 1218818 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java socket编程

 
阅读更多

http://www.cnblogs.com/linzheng/archive/2011/01/23/1942328.html

 

一,网络编程中两个主要的问题

一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。

TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。

TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。

目前较为流行的网络编程模型是客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提 出申请。服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户,同时自己继续监听服务端口,使后来的客户也 能及时得到服务。

二,两类传输协议:TCPUDP

TCPTranfer Control Protocol 简称,是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须建 立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送 或接收操作。

UDPUser Datagram Protocol的简称,是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。

比较:

UDP1,每个数据报中都给出了完整的地址信息,因此无需要建立发送方和接收方的连接。

            2UDP传输数据时是大小限制的,每个被传输的数据报必须限定在64KB之内

           3UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方

TCP1,面向连接的协议,在socket之间进行数据传输之前必然要建立连接,所以在TCP中需要连接

                时间。

            2TCP传输数据大小限制,一旦连接建立起来,双方的socket就可以按统一的格式传输大的  

                    数据。

             3TCP是一个可靠的协议,它确保接收方完全正确地获取发送方所发送的全部数据。

应用:

1TCP在网络通信上有极强的生命力,例如远程连接(Telnet)和文件传输(FTP)都需要不定长度的数据被可靠地传输。但是可靠的传输是要付出代价的,对数据内容正确性的检验必然占用计算机的处理时间和网络的带宽,因此TCP传输的效率不如UDP

2UDP操作简单,而且仅需要较少的监护,因此通常用于局域网高可靠性的分散系统中client/server应用程序。例如视频会议系统,并不要求音频视频数据绝对的正确,只要保证连贯性就可以了,这种情况下显然使用UDP会更合理一些。

三,基于Socketjava网络编程

1,什么是Socket

网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个SocketSocket通常用来实现客户方和服务方的连接。SocketTCP/IP协议的一个十分流行的编程界面,一个Socket由一个IP地址和一个端口号唯一确定。

但是,Socket所支持的协议种类也不光TCP/IP一种,因此两者之间是没有必然联系的。在Java环境下,Socket编程主要是指基于TCP/IP协议的网络编程。

2Socket通讯的过程

ServerListen(监听)某个端口是否有连接请求,Client端向Server 端发出Connect(连接)请求,Server端向Client端发回Accept(接受)消息。一个连接就建立起来了。Server端和Client 端都可以通过SendWrite等方法与对方通信。

对于一个功能齐全的Socket,都要包含以下基本结构,其工作过程包含以下四个基本的步骤:

  (1 创建Socket

  (2 打开连接到Socket的输入/出流;

  (3 按照一定的协议对Socket进行读/写操作;

  (4 关闭Socket.(在实际应用中,并未使用到显示的close,虽然很多文章都推荐如此,不过在我的程序中,可能因为程序本身比较简单,要求不高,所以并未造成什么影响。)

3,创建Socket

创建Socket

java在包java.net中提供了两个类SocketServerSocket,分别用来表示双向连接的客户端和服务端。这是两个封装得非常好的类,使用很方便。其构造方法如下:

  Socket(InetAddress address, int port);

  Socket(InetAddress address, int port, boolean stream);

  Socket(String host, int prot);

  Socket(String host, int prot, boolean stream);

  Socket(SocketImpl impl)

  Socket(String host, int port, InetAddress localAddr, int localPort)

  Socket(InetAddress address, int port, InetAddress localAddr, int localPort)

  ServerSocket(int port);

  ServerSocket(int port, int backlog);

  ServerSocket(int port, int backlog, InetAddress bindAddr)

  其中addresshostport分别是双向连接中另一方的IP地址、主机名和端 口号,stream指明socket是流socket还是数据报socketlocalPort表示本地主机的端口号,localAddr bindAddr是本地机器的地址(ServerSocket的主机地址),implsocket的父类,既可以用来创建serverSocket又可 以用来创建Socketcount则表示服务端所能支持的最大连接数。例如:学习视频网 http://www.xxspw.com

  Socket client = new Socket("127.0.01.", 80);

  ServerSocket server = new ServerSocket(80);

  注意,在选择端口时,必须小心。每一个端口提供一种特定的服务,只有给出正确的端口,才 能获得相应的服务。0~1023的端口号为系统所保留,例如http服务的端口号为80,telnet服务的端口号为21,ftp服务的端口号为23, 所以我们在选择端口号时,最好选择一个大于1023的数以防止发生冲突。

  在创建socket时如果发生错误,将产生IOException,在程序中必须对之作出处理。所以在创建SocketServerSocket是必须捕获或抛出例外。

4,简单的Client/Server程序

1. 客户端程序

  import java.io.*;

  import java.net.*;

  public class TalkClient {

    public static void main(String args[]) {

      try{

        Socket socket=new Socket("127.0.0.1",4700);

        //向本机的4700端口发出客户请求

        BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));

        //由系统标准输入设备构造BufferedReader对象

        PrintWriter os=new PrintWriter(socket.getOutputStream());

        //Socket对象得到输出流,并构造PrintWriter对象

        BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));

        //Socket对象得到输入流,并构造相应的BufferedReader对象

        String readline;

        readline=sin.readLine(); //从系统标准输入读入一字符串

        while(!readline.equals("bye")){

        //若从标准输入读入的字符串为 "bye"则停止循环

          os.println(readline);

          //将从系统标准输入读入的字符串输出到Server

          os.flush();

          //刷新输出流,使Server马上收到该字符串

          System.out.println("Client:"+readline);

          //在系统标准输出上打印读入的字符串

          System.out.println("Server:"+is.readLine());

          //Server读入一字符串,并打印到标准输出上

          readline=sin.readLine(); //从系统标准输入读入一字符串

        } //继续循环

        os.close(); //关闭Socket输出流

        is.close(); //关闭Socket输入流

        socket.close(); //关闭Socket

      }catch(Exception e) {

        System.out.println("Error"+e); //出错,则打印出错信息

      }

  }

}

 2. 服务器端程序

  import java.io.*;

  import java.net.*;

  import java.applet.Applet;

  public class TalkServer{

    public static void main(String args[]) {

      try{

        ServerSocket server=null;

        try{

          server=new ServerSocket(4700);

        //创建一个ServerSocket在端口4700监听客户请求

        }catch(Exception e) {

          System.out.println("can not listen to:"+e);

        //出错,打印出错信息

        }

        Socket socket=null;

        try{

          socket=server.accept();

          //使用accept()阻塞等待客户请求,有客户

          //请求到来则产生一个Socket对象,并继续执行

        }catch(Exception e) {

          System.out.println("Error."+e);

          //出错,打印出错信息

        }

        String line;

        BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));

         //Socket对象得到输入流,并构造相应的BufferedReader对象

        PrintWriter os=newPrintWriter(socket.getOutputStream());

         //Socket对象得到输出流,并构造PrintWriter对象

        BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));

         //由系统标准输入设备构造BufferedReader对象

        System.out.println("Client:"+is.readLine());

        //在标准输出上打印从客户端读入的字符串

        line=sin.readLine();

        //从标准输入读入一字符串

        while(!line.equals("bye")){

        //如果该字符串为 "bye",则停止循环

          os.println(line);

          //向客户端输出该字符串

          os.flush();

          //刷新输出流,使Client马上收到该字符串

          System.out.println("Server:"+line);

          //在系统标准输出上打印读入的字符串

          System.out.println("Client:"+is.readLine());

          //Client读入一字符串,并打印到标准输出上

          line=sin.readLine();

          //从系统标准输入读入一字符串

         //继续循环

        os.close(); //关闭Socket输出流

        is.close(); //关闭Socket输入流

        socket.close(); //关闭Socket

        server.close(); //关闭ServerSocket

      }catch(Exception e){

        System.out.println("Error:"+e);

        //出错,打印出错信息

      }

    }

  }

5,支持多客户的client/server程序

前面的Client/Server程序只能实现Server和一个客户的对话。在实际应用 中,往往是在服务器上运行一个永久的程序,它可以接收来自其他多个客户端的请求,提供相应的服务。为了实现在服务器方给多个客户提供服务的功能,需要对上 面的程序进行改造,利用多线程实现多客户机制。服务器总是在指定的端口上监听是否有客户请求,一旦监听到客户请求,服务器就会启动一个专门的服务线程来响 应该客户的请求,而服务器本身在启动完线程之后马上又进入监听状态,等待下一个客户的到来。

分享到:
评论

相关推荐

    企业人力资源领域工作交接控制程序:规范员工变动时的工作移交标准与流程

    内容概要:本文档为企业的人力资源管理提供了详细的指引,旨在加强公司在人员发生变更如岗位调整或离职期间的工作交接程序规范化。全文涵盖工作交接的目的、范围、职责分配、详细步骤以及注意事项等多个方面。首先明确此政策针对所有可能发生人事变化的情形,随后详述具体操作规程,包括事前准备工作(处理未尽事宜,整理资料)、不同类型的物品或资料交接细则(涉及公章、文书、业务文件等),还强调了监督机制的作用及交接过程的责任落实情况。 适用人群:适用于希望构建或优化自身内部管理制度的企业决策者与HR从业者,也适用于即将经历职位转换或者即将离职的在职员工及其直属上级管理者。 使用场景及目标:当遇到岗位调动或是员工离职时,能够提供一份行之有效的指导方针供参照实施,确保重要信息传递不缺失并且有序进行,减少不必要的纠纷或误解的可能性;最终达到维护组织运作连贯性和稳定性的目标。 其他说明:文中提到的一些专业术语可能需要根据各自企业的实际情况作出适当调整解释,而具体的文件模板也可以依据公司特性来灵活定制。同时,在应用该指南时应注意结合当地法律法规要求执行相应的人力资源配置活动。

    南充经济开发区(南充化工园区)智慧园区解决方案PPT(65页).pptx

    在当今化工行业转型升级的大潮中,智慧化工园区作为推动绿色、创新、高质量发展的关键力量,正逐步成为行业发展的新趋势。随着国家政策的不断引导和推动,智慧化工园区的建设已不仅仅是提升管理服务水平的手段,更是实现安全生产、环境保护和应急响应能力全面提升的重要途径。从提升重大危险源监测、隐患排查到完善风险分级管控机制,智慧化工园区利用信息化、智能化技术,构建了一个全方位、多层次的安全、环保、应急救援一体化管理平台。 智慧化工园区以安全、便捷、高效、节能、物联为核心理念,通过深度融合云计算、物联网、人脸识别、大数据分析、人工智能等先进技术,实现了园区生产、车辆、人员、环境、能源等关键环节的智能化管理。在基础网络方面,园区不仅实现了全千兆光纤接入,还覆盖了5G信号、NB-IoT信号和WiFi网络,为万物互联提供了坚实的基础。智慧安监作为园区的核心板块,通过企业安全云服务、安全文化宣传教育、舆情信息监管、风险分级管控、隐患排查治理以及重大危险源管理等功能,构建了从源头到末端的全过程安全监管体系。特别是企业一张表功能,实现了企业档案的数字化管理,为精准施策提供了有力支持。此外,智慧园区还通过物联网监测预警系统,利用智能终端设备对园区内的各类风险进行实时监测和预警,确保园区安全无虞。 在智慧节能与环保方面,园区通过智能仪表监测电、水、冷、气等能耗数据,实现能源管理的精细化和节能减排。智慧应急系统则融合了指挥调度、辅助决策等功能,能够在突发情况下迅速响应,有效处置。智慧环保系统则利用物联网技术和大数据分析,实现了环境质量的自动监测和预警,为环保部门提供了精准的执法依据。同时,智慧物流、智慧安防、智慧楼宇等系统的引入,进一步提升了园区的智能化水平和运行效率。这些系统的集成应用,不仅让园区的管理更加便捷高效,还极大地提升了园区的整体竞争力和可持续发展能力。对于正在筹备或优化智慧化工园区建设方案的读者来说,这份解决方案无疑提供了宝贵的参考和灵感,让智慧化工园区的建设之路变得更加清晰和有趣。

    基于SpringBoot和Vue的驾校管理的设计与实现-源码+数据库

    参考链接:https://www.bilibili.com/video/BV1Cd9VYnEKe/?vd_source=bf2d43514ea61b1121399ab65421e37c 驾校管理系统是一个综合性的信息管理平台,旨在实现驾校业务 的全面数字化和智能化管理。该系统通过整合学员、教练、车辆、课程等关键 资源,提供一系列功能强大的管理模块,以支持驾校日常运营和决策分析。 首先,系统需要建立完善的学员信息管理系统,包括学员基本信息的录入、 培训进度的跟踪、考试成绩的管理以及预约排课等功能。通过这一系统,驾校可以全面掌握学员的学习情况和进度,为学员提供更加个性化的培训服务。 其次,教练信息管理也是系统的重要组成部分。系统需要记录教练的基本 信息、教学安排和教学质量评价等,以便优化教学资源的配置和提高教学质量。 通过系统对教练的绩效进行评估,可以为教练的奖惩和晋升提供数据支持。 此外,车辆管理模块也是系统中不可或缺的一部分。系统需要记录车辆的 基本信息、维护记录和使用状态等,以确保车辆的安全运行和有效利用。通过 实时监控车辆的使用情况,可以避免资源的浪费和提高车辆的使用效率。

    ssm机考一体化平台----实现随时练习,随时考试,随意添加课程与练习题,考题.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途,网络商品/电子资源资料具可复制性不支持退款。质量优质,放心下载使用。

    基于第二篇文章参考的改进粒子群算法在微电网综合能源优化调度中的应用与复现代码实现,基于第二篇文章求解方法,改进粒子群算法在微电网综合能源优化调度的应用与复现代码实现,参照第一篇文章的模型进行优化,基于

    基于第二篇文章参考的改进粒子群算法在微电网综合能源优化调度中的应用与复现代码实现,基于第二篇文章求解方法,改进粒子群算法在微电网综合能源优化调度的应用与复现代码实现,参照第一篇文章的模型进行优化,基于改进粒子群算法微电网综合能源优化调度 求解方法主要参考第二篇文章 模型参照第一篇 复现代码 ,核心关键词: 基于改进粒子群算法; 微电网综合能源优化调度; 求解方法; 第二篇文章; 模型; 第一篇文章; 复现代码;,基于第二篇求解方法的改进粒子群算法在微电网综合能源优化调度中的应用研究

    ansible服务部署与应用.

    ansible自动化运维部署工具的安装,基本环境配置

    基于消纳责任权重的两级电力市场优化运行模型:双层优化策略与可再生能源交易的高效实践,基于消纳责任权重的两级电力市场优化运行模型:省间可再生能源交易的双层优化与MPEC模型简化策略,Matlab Cpl

    基于消纳责任权重的两级电力市场优化运行模型:双层优化策略与可再生能源交易的高效实践,基于消纳责任权重的两级电力市场优化运行模型:省间可再生能源交易的双层优化与MPEC模型简化策略,Matlab Cplex代码:基于消纳责任权重的两级电力市场优化运行模型 参考全球能源互联网的《基于消纳责任权重的两级电力市场优化运行模型》 Highlights:省间可再生能源交易,双层优化模型,采用KKT和强对偶化简MPEC模型为MILP ,Matlab; Cplex代码; 消纳责任权重; 两级电力市场优化运行模型; 省间可再生能源交易; 双层优化模型; KKT; 强对偶化简; MPEC模型; MILP,基于消纳权重与双层优化的电力市场模型:Matlab Cplex代码实现

    服务外包创新创业大赛.zip

    大创项目代码

    机器学习(预测模型):物流相关的数据集

    这是一个与物流相关的数据集,主要来源于印度物流公司 Delhivery 的运营数据。该数据集在 Kaggle 上由用户 Santanu Kundu 提供,包含丰富的物流信息,可用于分析和优化物流配送过程。该数据集涵盖了 Delhivery 在物流配送中的详细记录,包括运输行程、路线类型、运输时间、实际与预估的配送时间、运输距离等信息。数据集中的关键字段包括:行程信息:如行程创建时间、行程唯一标识符、起始和结束地点等。运输类型:包括 Full Truck Load(FTL,整车运输)和 Carting(小车运输)两种主要方式。时间和距离:实际运输时间、预估时间(通过 OSRM 路由引擎计算)、实际距离和预估距离等。地理位置信息:起始和目的地的名称、代码、城市、州等,可用于分析区域物流活动。数据集特点 数据量丰富:数据集包含超过 15 万条行程记录,涵盖了 2018 年 9 月的部分物流数据。 多维度信息:不仅包含时间和距离信息,还涉及运输类型、区域分布等,为多维度分析提供了基础。 实际应用场景:数据来源于真实的物流运营,可用于研究物流效率、优化配送路线、分析区域物流活动等。

    企业运维服务体系内部审核流程及其实现方法

    内容概要:本文档介绍了企业为确保运维服务管理体系的有效性和合规性而设定的一系列内部审核程序。首先明确审核的目标和适用范围,并定义了‘内审’的概念。接着阐述了从审核计划的制定到实施的整个流程细节,包括频次、准备工作、实际操作环节(如现场核查、会议)、结果汇报以及后续的纠正措施。最后列出相关的配套文件和记录。这些流程旨在维持并提升组织内部的服务管理水平,确保所有运作均能持续改进,满足既定的质量和服务标准。 适用人群:负责运维服务质量管理和内部监督的企业管理人员,特别是熟悉ISO质量管理认证的相关人士。 使用场景及目标:此文档主要用于指导企业在日常运营中开展内部审查活动,以便识别潜在的问题点并采取有效的整改措施来维护系统稳定运行。其最终目的在于使企业能够顺利通过外部审核并提高内部流程效率。 其他说明:为了保证审核工作的公正性和专业度,文中强调了对于参与人员资格的把控以及遵循预定的时间表的重要性。此外还提到了特殊情况下的附加审核条件,例如当遇到重大变故时应及时调整审核计划以适应新的挑战。

    报修维修订单系统小程序独立版+前端(附安装说明)-精品源码.zip

    基于微信小程序的工单报修管理系统_维修 环境:php5.6 mysql 上传后台源码到服务域名下 导入数据库 更改<后端>和<后端/admin>目录下的php数据库信息,你的域名,以及小程序的appid及key,对两个文件都要改。 具体参考随带安装教程

    春风机器学习框架和演示程序

    春风机器学习框架和演示程序

    前端纯css编写多边形

    纯css编写多边形,椭圆形、三角形、六边形等

    b8aa647d-094c-4b60-bc9f-6f55bfddbb83.html

    b8aa647d-094c-4b60-bc9f-6f55bfddbb83.html

    使用ssh框架的文档管理系统.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途,网络商品/电子资源资料具可复制性不支持退款。质量优质,放心下载使用。

    JAVAEE课程结课项目.zip(课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途,网络商品/电子资源资料具可复制性不支持退款。质量优质,放心下载使用。

    小狐狸Chat GPT付费创作系统 3.12 无授权 支持 Deepseek

    小狐狸Chat GPT付费创作系统 3.12 无授权 支持 Deepseek

    ultralytics_BiFPN.zip

    ultralytics_BiFPN.zip

    EPLAN P8部件库:Pai型号低压电气控制系统设计常用品,高效导入,小巧便捷,专业工具助力高效设计!,EPLAN P8部件库之Pai型号:低压电气控制系统设计常用品,高效导入小文件,便捷实用,EP

    EPLAN P8部件库:Pai型号低压电气控制系统设计常用品,高效导入,小巧便捷,专业工具助力高效设计!,EPLAN P8部件库之Pai型号:低压电气控制系统设计常用品,高效导入小文件,便捷实用,EPLAN P8部件库:包含低压电气控制系统设计常用品Pai型号。 导入单个文件很小几十M,简单易用 ,EPLAN P8部件库;低压电气;控制系统设计;Pai型号;文件导入;简单易用,EPLAN P8低压电气部件库:Pai型号集成,小巧易用设计首选

    智能防火楼道(华为云)

    本次设计使用STM32-F407VGT6模块、WIFI模块、温湿度检测模块、液晶显示模块、火焰检测模块、烟雾检测模块和蜂鸣器模块完成以下任务: 火焰检测功能:当火焰检测模块检测到火焰时,系统应立即响起警报并显示警告信息,以便用户立即采取行动。 烟雾检测功能:MQ-2烟雾检测模块探测烟雾。 温湿度检测功能:DHT11温湿度检测模块探测温湿度。 液晶显示功能:HS96S01A显示数据。 WIFI功能:ESP8266S实现数据向平台上传并接受平台下发命令。 按键功能:实现控制SG90舵机的控制

Global site tag (gtag.js) - Google Analytics