可以看出来这个epoll是非常之任务繁忙的,线程池也要,TCP通信也要,进程间通信也要,解压包也要,我以前写的那个项目,还要个日志类对象,真是,能者多劳啊。...但是,这样就很难拓展了,如果我要安插一个新的文件描述符,它代表一个全新的模块,那要改多少?来个对象,初始化对象,配置对象,然后再配置epoll属性,然后插入epoll监控表,麻烦,还容易出错。...struct sockaddr_in servaddr;//客户端地址及服务器地址 listen_fd = socket(AF_INET, SOCK_STREAM, 0);//1.创建文件描述符...(用于监听) //成功返回文件描述符,失败返回-1,并设置errno ep->Epoll_add(listen_fd); //凡是在外面使用ep的,都要上锁,这里等着被锁吧...servaddr.sin_port = htons(8000);//绑定端口号 bind(listen_fd, (struct sockaddr*) & servaddr, sizeof(servaddr));//将监听文件描述与
写了这第九篇日报,就意味着这个为期12个“工作日”的项目到了大后期啦。 这两天我去找我哥聊了聊这个项目的架构,他是做Java的,不过对我用C++讲的这个项目还是很有兴趣哈哈哈。...add_file(char* file_name,int owner_id, int pwd, int mode,int dir_id,int force,char* err);//force,是否替换原文件...select owner_id from DirMsg where dir_id = %d", dir_id); if (My_DB->return_serch_num(sql)) { //再对文件...; //无权 return false; } } //目前不支持非空文件夹删除操作,不然子又生孙,孙又生子,怎么搞?...m_send->Write_date(m_packet.getData(), m_packet.getSize()); }break; case 0x12: //上传文件
今天我们的“本地云”练手项目开工第一天,刚开完会,来记录个日报。...2、确定项目秩序,明确组长的监督与协助职责,每日日报需要按时提交。...0x11,上传文件0x12,下载文件0x13,共享文件0x14 //心跳0x21 int optid; // 操作码:请求0x00 和 应答0x01 int usrlenth...char V[800]; }res_filelist; #endif // PACKET_BASE_H 4、明确一些技术点: 数据包传输使用不定长包、IPC进程间通信方法采用TCP、客户端自行管理下载之后的文件...、客户端自行保留历史记录等 5、今日任务: 需求分析、日报、项目进度甘特图。
我都进度 预期进度 测试完文件方面代码 结果:没碰。 实际进度:epoll模块、进程间通信模块、线程池模块进行中,解压包模块依旧没去测试。 为什么?这也不是理由,没做就是没做,我不喜欢找理由。...用于前后端通信即目标客户端fd(服务器用到) int funcId; // 功能号 //登录包0x01,注册包0x02,找回密码0x03,修改密码0x04 //客户端获取文件列表...0x11,上传文件0x12,下载文件0x13,共享文件0x14,除获取列表外各种文件业务应答0x15 //心跳0x21 //中介服务器信息填充0x30 int
项目周期调整 昨天还做出了一个调整,鉴于大家压力都比较大,所以决定将之后的一个项目日分为两天,天天开会大家会觉得没什么好讲的了。...相应的改动便是将项目周期由12个工作日改为10个项目日,实际时间由原先的16天延长为20天。 此外,会议主要讨论了解压包模块应该如何进行,接下来会看到我设计的类图。 解压包模块设计 ?...0x11,上传文件0x12,下载文件0x13,共享文件0x14,除获取列表外各种文件业务应答0x15 //心跳0x21 int optid; // 操作码:请求0x00 和 应答...****************************************/ //上传文件请求包 typedef struct UpFile { int user_id; int...dir_id; int mode; //文件权限位 int pwd; char* file_name; }UpFile_t; //下载文件请求包 typedef struct
时间就是这么的快,不知不觉就到了日报(七),感觉像是到了项目的后半场了,但是我还有一整个模块(文件管理与FTP传输)还没弄,现有模块也还没进行梳理,都是各个模块各自为政,感觉时间不太够用了。...struct sockaddr_in servaddr;//客户端地址及服务器地址 listen_fd = socket(AF_INET, SOCK_STREAM, 0);//1.创建文件描述符...(用于监听) //成功返回文件描述符,失败返回-1,并设置errno set_fd(listen_fd); ep->Epoll_add(listen_fd); //凡是在外面使用...servaddr.sin_port = htons(8888);//绑定端口号 bind(listen_fd, (struct sockaddr*) & servaddr, sizeof(servaddr));//将监听文件描述与
今天我们的“本地云”练手项目开工第二天,总结了前一天大家的反应,来记录个日报。...实际计划 需求分析,项目整体框架设计,数据库设计与实现 完成情况: 整体框架(这种还是比较喜欢手绘,虽然字不好看,但是手写就是有种不一样的感觉) ?...数据库设计(我觉得这个项目两个表就够了) ? 数据库板块设计: ? 整个模块只开放数据库操作类的接口。...DB_base(char* name); ~DB_base(); static DB_base* My_DB;//实例 static sqlite3* db;//数据库文件句柄...select owner_id from Dir_Msg where dir_id = %d", dir_id); if (My_DB->return_serch_num(sql)) { //再对文件
新日程 这两天主板烧了,所以也没啥过多进度,也就把文件服务器模块设计并解决了,项目各个模块处理完之后顺便把流程图画了。...在做文件服务器模块的时候我发现好多功能和数据库服务器相交了,搞得我有点乱,而且协议改来改去,有些文件也是多模块共用,搞得我都晕了,所以我决定接下来重构。 新甘特图已经备好: ?...我的进度 预期计划 文件服务器模块解决。 实际情况 解决了。 FTP服务器流程图 ? FTP操作图 ? 简单放一些零件基类代码,这个后期也要封装成动态库,不面向用户。...int CreateDir(const char* sPathName); //新增目录 void delFile(char* filename); //删除文件 void delDir(char...* path, mode_t mode); //权限留在数据库,我才不管 void downFile(char* file_name, int new_server_socket_fd);//下载文件
我同时使用vscode写c++、java、python以及markdown文档,每次打开vscode都要切换到对应的文件夹,非常不方便,也可以把所有项目文件都放到一个文件夹下,但本人觉得项目结构会太过混乱...如果能有一条指令类似vscode c能直接打开c++对应的文件夹就好了,本文将介绍如何实现类似的功能。...主要思想 vscode可以在Terminal中通过指令 code 执行,经查阅发现 code -n ProjectFolder 可以打开对应的项目文件夹,然后将 code -n ProjectFolder...步骤二:重命名指令 采用doskey指令 新建alias.bat文件 新建txt文件,输入内容见下图。-n 后面跟项目路径,可以根据自己的需要自行替换。...重命名文件为 alias.bat,并将其移动至个人用户下C:\Users\Username\alias.bat。
今天本人给大伙推荐一个项目管理工具,该工具会提供各类:文档协作功能、在线思维导图、在线审批流程图、项目管理、任务分发、在线评论,文件管理等等。...智能项目管理解决方案:https://www.informat.cn/pm 一、 系统预览 1. 登录系统 2. 系统总览,仪表盘 3....项目计划管理 项目体系分解项目组,主子项目 项目文档与知识分享 项目预算费用分解 项目的人员,设备,材料计划 工作逐级逐级拆分,排期 项目成员责权区分,流程协同 多系统数据联动 4....项目立项-投标管理 发起投标立项审批 投标任务分配 投标文档记录 投标结果分析 过程附件 过程交流评论 中标后跳转立项 5....项目成本管理 项目任务与报销,物料,设备成本单据关联 员工报销/对公报销成本 设备租赁成本 消耗材料成本 自定义费用管理流程 超预算自动控制 7.
代码一定要按照文档上的来,每个字段都要和代码仔细查验,不能多不能少,实体类最好新建,每个字段属性和文档保持一致 修改的代码最好要在测试环境测试一下,让测试人员确认通过之后,增量更新代码,改了那些文件就更新那些文件...,每个环境不一样,哪怕是同样的程序,同样的库,同样的静态文件,也会出现不一样的问题。...项目初期开发 产品需求确定留底,UI图给出 功能设计一定要画流程图 数据库设计一定要给ER图 接口规则一定要提前规范好,避免出现后端接口返回结果出现不相同的情况 数据库定时备份,服务器镜像备份,文件恢复工具与备份...任务分配 由开发组长先过一遍,给到开发估算时间,给出一个合理的开发区间 根据开发同学的技术栈,工作经验,结合实际情况分配工作任务 对于超出开发时间的部分,突发情况,需要列举影响开发的原因,进行归档 人员管理...交接过程中出现问题,不要急于进行责任划分,以解决实际问题为主,责任划分交由管理层去决断。
不知不觉项目接近尾声,期间画了不少设计图,把能用上的设计模式都用上了。 今天来盘点一下。...拨云见日:责任链模式 负责和客户端建立连接的前置服务器,以及中控服务器,以及将来需要面对大量四面八方消息的服务器,肯定要用到文件描述符监听模型,我用epoll。...秉着“单一职责原则”,我认为epoll只需要且只能监听文件描述符,但是它不应该知道消息内容,更不应该对消息进行处理。...于是便有了以下这张图,也正是这张图吸引了听我讲这个项目设计的朋友: ? 图我是不会再解释的,代码也不会放出来,因为我在我的日报博客中已经讲得清楚了。...四面开花:模板方法模式 解压包模块和数据库模块可是两个最不稳定的模块了,因为这两个模块会经常需要进行拓展,它们不像epoll、进程间通信、文件管理等模块,定下来就基本定下来了,只要要拓展新业务,肯定要加协议
5、变更日志: 正式受控的任一项目文件都可在本过程变更,通常在本过程更新的一种项目文件是变更日志。变更日志用于记录项目期间发生的变更。...为便于管理相关方的期望,项目范围说明书可明确指出哪些工作不属于本项目范围。...项目范围说明书描述要做和不要做的工作的详细程度,决定着项目管理团队控制整个项目范围的有效程度。详细的项目范围说明书包括以下内容(可能直接列出或参引其他文件): ■产品范围描述。...为完成某一过程、阶段或项目而必须产出的任何独特并可核实的产品、成果或服务能力,可交付成果也包括各种辅助成果,如项目管理报告和文件。对可交付成果的描述可略可详。 ■验收标准。...需求跟踪矩阵提供了在整个项目生命周期中跟踪需求的一种方法,有助于确保需求文件中被批准的每项需求在项目结束的时候都能交付。最后,需求跟踪矩阵还为管理产品范围变更提供了框架。
接下来来看一下对比代码: 关于原先解压包模块的设计图和代码在日报2中:FTP文件管理项目(本地云)项目日报(二) 但是我要重新做个图了。 旧图: ? 新图: ?
沟通管理(Communication Management) 为了确保项目的信息的合理收集和传输所需要实施的一系列措施,它包括沟通规划,信息传输和进度报告等。 我的要求就是单向精准,消息漏斗化。...- Why:目前用户注册登陆以及发帖无验证吗,某些用户通过机器人软件批量开户/发广告帖,给我门管理带来很大困扰。...两者都会打乱其部门内部的权利结构和工作部署,形象整个组织架构管理。 1.4.5. 工作例会 开会就要有解决方案,成熟的方案,否则不要开会,开了没有意义,浪费时间。...我从不要求团队写工作报告,因为项目管理中Ticket/Issue一幕了然,任务出口是由经我这里确认后发出,对整个项目了如执掌,所以不需要工作报告。...负面信息处理 任何公司内部都会时不时传出一些负面信息,例如,公司投资项目失败,高层政治斗争,销售业绩受挫,绯闻谣言。 怎样处理这些负面信息呢?答:欺上瞒下。 对下属,听而不说。 对平级,不听不说。
项目范围管理包括确保项目做且只做所需的全部工作,以成功完成项目的各个过程。 项目范围管理关注的焦点是:什么是包括在项目之内的,什么是不包括在项目之内的,即为项目工作明确划定边界。...对项目范围管理和控制的有效性,是衡量项目是否达到成功的一个必要标准,项目范围的管理不仅仅是项目整体管理的一个主要部分,同时在项目中不断地重申项目工作范围,有利于项目不偏离轨道,是项目中实施控制管理的一个主要手段...编制范围管理计划和细化项目范围始于对下列信息的分析: 项目章程中的信息; 项目管理计划中已批准的子计划等 编制项目范围管理计划有助于降低项目范围蔓延的风险。 编制项目范围管理的工具与技术:会议。...编制项目范围管理的输入: 项目管理计划; 项目章程,项目章程提供了高层级的项目描述和产品特征。...产品特征出自项目工作说明书; 编制项目范围管理的输出: 范围管理计划:是项目或项目集管理计划的组成部分,描述了如何定义、制定、监督、控制和确认项目范围。
今日锦囊 特征锦囊:怎么来管理我们的建模项目文件?...这个专题其实很久之前在我的一篇文章里有比较详细的介绍,可以戳《分享8点超级有用的Python编程建议》,但是今天我还是想把其中的一个内容重点来说一下,大家可以先看看这张图,这个我们在做建模项目时,个人比较推荐的一个建项目文件的...点击图片看高清大图 这个项目文件结构是我平时经常用的,会根据项目复杂度自行删减一些内容,不过总体的框架还是差不多的,所以分享给大家参考下呗,因为个人用起来还是蛮不错的,图片里讲了还是比较详细的了,不过我还是挑一些重点来简单解释一下...: experiment:专门用来存放我们的实验文件,也就是那些不断地测试算法的中间文件。...model:存放不同算法的最终版本代码的文件夹 data:存放数据的文件夹,里面还会分不同类别去存放数据,比如external(来自第三方的数据)、interim(经过部分清洗转换的数据源,如SQL、SAS
指向的内存空间的前num个字节的数据 如果相同则返回0 如果ptr1指向内存的数据是小于ptr2指向内存的数据的,则返回小于0的数字 否则返回大于0的数字 memcmp比较是以字节为单位比较的 举个例子 3.动态内存管理...1,2,3,4,5,6,7,8,9,10 };//存放一组值 return 0; } 但是他们都存在一个问题:空间一旦申请好,大小就是固定的,不能改变 所以C语言给了我们一种权利,能够动态申请和管理内存空间...stdlib.h 如果申请失败就会这样: 如果返回了NULL指针,则不能使用了 从这个图可以看出 动态内存的管理都是在堆区进行的 假设我们要使用这块内存 malloc申请的空间是怎么释放的呢...) 这是calloc开辟的空间(初始化为0) 如果我们对申请的内存空间的内容要求初始化,那么就可以很方便的使用calloc函数来完成任务 3.2.3 realloc realloc函数的出现让动态内存管理更加灵活...函数fclose - C++ Reference (cplusplus.com) 为了防止pf成为野指针,这里我们把它置为空指针 fopen和fclose函数跟动态内存开辟有相似的地方:他们都是对资源的管理和使用
一、FileGator介绍 1.1 FileGator简介 FileGator简介 FileGator是一个免费的、开源的、自托管的 Web 应用程序,用于管理文件和文件夹。...1.2 FileGator功能 管理本地存储库文件夹中的文件 连接到其他存储适配器 多用户支持,可赋予不同访问权限、角色和主文件夹 支持复制、移动、重命名、编辑、创建、删除、预览、压缩、解压缩、下载、上传等基本文件操作...让学生有权上传他们的作品 允许工作人员上传现场数据/文档/图像 用作云备份 与多人一起管理 CDN 用作FTP/SFTP替代品 管理 S3 或其他第三方云存储 用于快速压缩和下载远程文件 二、本地环境介绍...jeven 192.168.3.166 centos 7.6 2 20.10.17 2.2 本次实践介绍 1.本次实践部署环境为个人测试环境,生产环境请谨慎; 2.在Docker环境下部署FileGator文件管理器...七、总结 FileGator是一款用户体验优秀的文件管理器,界面简洁、操作简单,适合新手快速上手。该工具的文件上传速度快,支持在线预览PDF文件和图片,非常方便。
领取专属 10元无门槛券
手把手带您无忧上云