刚开始接触网络编程不久,这里仅仅是作为记录,大神勿喷哈,有想法咱们可以留言讨论滴。

该部分要解决的主要是两个问题,一个服务器端,一个客户端。

服务器端负责文件的准备,客户端负责文件的接收以及修改对应的文件。

这里采用epoll方式进行通信,允许多机连接服务器端。

服务器端:

这里我考虑的主要问题是:怎么实现让客户端知道升级哪部分,例如我想升级u-boot或者内核,那么是不是服务器段需要通知客户端我要升级哪部分。答案是肯定的,因此我详设计一个update.conf配置文件,用来说明升级哪部分,以及要升级的文件系统的路径,另外还需要一个使能标志,还需要其他么?有人给出意见么?谢谢了。

客户端:

该部分考虑的问题主要是,读取服务器端的配置文件是否存在,然后判断使能标志,读取升级的内容配置,进而去处理升级的任务。这里有个问题,是否需要考虑断点续传呢?我感觉暂时没需要,局域网内传输,而且只是u-boot、内核、部分的文件系统文件,也不是整个文件系统几百MB,所以无需断点续传,即使突然断线,重新连接下载即可。

为了升级好管理,在根文件系统目录下建立一个update文件夹用于存放下载的文件,完成升级后会自动删除下载的所有文件(不知道这样好不好)。

有一个新想法,在之前的模式上做个改动。Linux系统使用socket获取网络上的升级文件,放到指定的分区,在Linux系统中仅仅做这个任务,剩下的是重新启动系统,所有的升级覆盖工作交给u-boot完成。

这样的好处是,既然不是在Linux中升级,那么就无需理会是否应用程序有进程执行,直接覆盖要升级的文件即可,而且该方法允许升级整个文件系统。

后面的记录将会已此为蓝本。

二、在应用中升级----网络部分相关推荐

  1. 【Log】(二)Java 中的日志框架 JCL、SLF

    [Log](一)Java 中的日志框架 JUL.Log4j [Log](二)Java 中的日志框架 JCL.SLF [Log](三)Java 中的日志框架 logback.log4j2 前言 JUL ...

  2. 剑指offer:面试题04. 二维数组中的查找

    题目:二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该 ...

  3. php查找二维数组下标,PHP实现二维数组中的查找算法小结

    本文实例讲述了PHP实现二维数组中的查找算法.分享给大家供大家参考,具体如下: 方法1:silu从左下角最后一行的第一个元素开始,遍历.如果小于target 则遍历该行的所有元素,找到结束.如果大于继 ...

  4. 求二维数组中最大子数组的和

    任国庆  张博 之前我们讨论了在一维数组中求最大子数组的和,在此基础上我们开始讨论二维数组的最大子数组. 求二维数组的最大子数组思想是建立在以为数组.首先将数组的第一列看成一个一维数组,找到该列的最大 ...

  5. 剑指offer_第1题_二维数组中的查找

    题目描述 在一个二维数组中(每个一维数组的长度相同) 每一行都按照从左到右递增的顺序排序 每一列都按照从上到下递增的顺序排序. 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整 ...

  6. 数组-二维数组中的查找

    题意: 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 示例: ...

  7. VC++中从txt文本中读取数据并且存到二维数组中

    这几天因为在做作业,所以不仅会想到这一类有关的问题.现在我需要实现的是讲txt文件的数据读取出来并且存储到一个二维数组中.,首先为了对待什么样的矩阵我们都可以读取,我们就要设置一个动态的矩阵,这样当我 ...

  8. 剑指offer:二维数组中的查找python实现

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...

  9. 剑指offer:二位数组中的查找

    准备找实习期间,复习一下数据相关内容,刷刷题. 题目描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样 ...

最新文章

  1. 进程和线程基础知识全家桶,30 张图一套带走
  2. C++多线程中互斥量std::mutex与模板类std::lock_guard
  3. twitter自定义api_为Twitter4j创建自定义SpringBoot Starter
  4. linux复制文件跳过相同,Linux cp指令,怎么跳过相同的文件
  5. 3ds max删除了对象后,还是将原来所有对象输出的原因
  6. 删除目录文件html代码,ASP创建目录、删除目录,删除文件代码范例
  7. HTML+CSS+JS实现 ❤️酷炫的canvas全屏背景动画特效❤️
  8. 机器学习里的kernel是指什么?
  9. 白噪音和粉红噪音煲机_白噪音信号的概念及基本理论
  10. axure rp9是什么软件?如何在Mac中安装使用?
  11. 阿里p7java什么水平_转头条:阿里p7架构师:三年经验应该具备什么样的技能?
  12. CentOS8设置网络安装源
  13. [Unity]寻路导航
  14. 什么是双线双IP,什么叫双线双IP
  15. 茫茫沧海,你终成了我无法逾越的泅渡
  16. LeetCode 661. Image Smoother
  17. 计算机怎么一键到桌面快捷键,关于添加一键返回桌面快捷键在win10电脑中的技巧...
  18. 完整版:交换机工作过程和原理
  19. Android 9 自动恢复出厂设置问题(auto-recovery)
  20. 大型IT企业内部数据分析的现状和发展趋势

热门文章

  1. java基础总结(小白向)
  2. android分辨率对应关系,android各dpi与分辨率的对应关系
  3. 中如何直接使用方法返回的值_java基础-2-方法、面向对象
  4. node mysql 事件循环_NodeJs 的 Event loop 事件循环机制详解
  5. mysql 5.1.17 redis_redis作为mysql的缓存服务器(读写分离)
  6. mysql分页查询limit_MySQL查询语句(where,group by,having,order by,limit)
  7. dateformat java_java常用API之DateFormat
  8. sublime text3 添加到右键菜单
  9. 一次性汇总了 30+ 字符串常用处理方法
  10. 13个知识点,系统整理Python时间处理模块Datetime