当前位置: 首页 > news >正文

2025年5月26日工作总结

2025年5月26日工作总结:开源系统设计大赛PC网上邻居项目开发进展

一、工作概述

围绕开源系统设计大赛的选题和初步实现展开工作,重点研究了"PC网上邻居"这一选题的技术可行性,并进行了初步的代码实现。通过mDNS和相关技术实现了本地Samba端口的发现功能,但在文件传输功能上遇到了技术瓶颈。

二、详细工作内容

1. 上午工作:选题研究与确定

经过对多个潜在选题的分析比较,最终确定以"PC网上邻居"作为参赛项目。这个选题具有以下特点:

  • 硬件要求低

2. 下午工作:技术实现与问题发现

2.1 技术架构设计

采用mDNS协议进行局域网设备发现,结合Samba协议实现文件共享功能。主要技术栈包括:

  • mDNS:用于局域网设备发现和服务广播
  • SMB协议:实现文件共享的核心协议
  • C++:作为主要开发语言
  • libsmbclient:Samba官方提供的客户端库
2.2 代码实现情况

已完成以下核心模块的开发:

  1. Samba客户端模块 (samba_client.hpp/cpp)

    • 实现了Samba服务检测功能
    • 完成了共享目录列表获取
    • 初步实现了文件上传下载接口
  2. 网络扫描模块 (scanner.hpp/cpp)

    • 实现了基础ARP扫描功能
    • 设备信息收集功能
  3. 主程序模块

    • 服务扫描与展示功能
    • 基本的用户交互界面
2.3 遇到的问题

在测试过程中发现以下关键问题:

  1. 文件传输功能失效:虽然能发现Samba服务和共享目录,但实际文件上传下载操作无法完成(实在是找不到为什么,这些原因都排除了)
  2. 认证问题:硬编码的认证信息可能导致兼容性问题
  3. 端口扫描范围:当前仅扫描了标准端口和有限的自定义端口范围

三、代码分析

1. 核心类设计

// Samba客户端类
class SambaClient {
public:SambaClient();~SambaClient();std::vector<int> find_samba_ports(const std::string& ip);bool check_samba(const std::string& ip, int port = 445);std::vector<SambaShare> list_shares(const std::string& ip, int port = 445);bool download(const std::string& ip, const std::string& share,const std::string& remote_path, const std::string& local_path);bool upload(const std::string& ip, const std::string& share,const std::string& local_path, const std::string& remote_path);
private:std::string username = "wjj";std::string password = "20030509a";
};

2. 关键实现细节

文件传输功能的实现采用了标准的POSIX文件操作与Samba客户端库的结合:

bool SambaClient::download(const std::string& ip, const std::string& share,const std::string& remote_path, const std::string& local_path) {std::string src = "smb://" + ip + "/" + share + "/" + remote_path;int src_fd = smbc_open(src.c_str(), O_RDONLY, 0);if (src_fd < 0) return false;int dst_fd = open(local_path.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0644);if (dst_fd < 0) {smbc_close(src_fd);return false;}char buf[1024];ssize_t n;bool success = true;while ((n = smbc_read(src_fd, buf, sizeof(buf))) > 0){if (write(dst_fd, buf, n) != n) {success = false;break;}}close(dst_fd);smbc_close(src_fd);return success;
}

四、遇到的问题与解决方案思考

1. 文件传输失败的可能原因

  1. 认证问题:当前使用硬编码的用户名密码,可能不匹配目标服务器的认证要求
  2. 权限问题:共享目录的写权限可能受限
  3. 路径格式:远程路径的拼接方式可能不符合Samba服务器的预期

2. 后续改进方向

  1. 增强认证灵活性:改为从配置文件或用户输入获取认证信息
  2. 错误处理增强:添加更详细的错误日志输出
  3. 协议支持扩展:考虑增加对WebDAV等其他文件共享协议的支持
  4. 用户界面优化:提供更友好的交互方式

五、明日工作计划

  1. 解决文件传输功能失效的问题
  2. ”烽火通信杯“研究生电子设计竞赛PPT决赛制作,技术论文修改
  3. DSP结课设计需同步推进

六、总结

今日工作完成了项目的基础架构搭建和核心功能初步实现,虽然在文件传输功能上遇到了障碍,但整体方向是正确的。对Samba协议和局域网文件共享有了更深入的理解,但是东西太多太杂,不好消化,只能了解。进度稍微过于单线程。

技术关键词:Samba协议、mDNS、局域网文件共享、C++网络编程、libsmbclient

相关文章:

  • 从“黑箱”到透明化:MES如何重构生产执行全流程?
  • 亚当·斯密思想精髓的数学建模与形式化表征
  • 鸿蒙OSUniApp 开发的多图浏览器组件#三方框架 #Uniapp
  • HOW - 从0到1搭建自己的博客站点(一)
  • OpenPCDet安装排错
  • 解锁MCP:AI大模型的万能工具箱
  • 如何学习联邦学习和差分隐私
  • 深度体验:海螺 AI,开启智能创作新时代
  • 高速通信时代的信号编码利器-PAM4技术解析
  • 工作计划工作总结年终总结PPT模版分享
  • 商务风企业公司推广培训计划PPT模版分享
  • 液体散货装卸管理人员备考指南
  • 为什么需要清除浮动?清除浮动的方式有哪些?
  • 文档工具解析:前端如何选择最适合的文档生成器?
  • 油烟净化设备清洗周期的科学确定依据
  • 网络编程——UDP网络编程
  • CQF预备知识:Python相关库 -- NumPy 基础知识 - 使用 genfromtxt 导入数据
  • 《算法笔记》13.2小节——专题扩展->树状数组(BIT) 问题 D: 数列-训练套题T10T3
  • 16QAM通信系统设计与实现(上篇)——信号生成与调制技术(python版本)
  • 关于 SSE(Server-Sent Events)过程的简要解剖
  • 网站建设套餐128000/seo关键词找29火星软件
  • 数据做图网站/品牌营销策略有哪些方法
  • 建购物网站需要多少钱/windows优化大师要会员
  • 衢州 网站建设/每日一则新闻摘抄
  • 网站导航栏兼容性/搜索引擎优化的工具
  • 做app 的模板下载网站有哪些/如何推广软件