ID:425553

Camellia.涵 有团队

嵌入式开发

  • 公司信息:
  • 昆山正信检测有限公司
  • 工作经验:
  • 13年
  • 兼职日薪:
  • 500元/8小时
  • 兼职时间:
  • 下班后
  • 周六
  • 周日
  • 所在区域:
  • 苏州
  • 全区

技术能力

精通STM32系列MCU(F1/F4)开发,熟练掌握HAL库/标准外设库,熟悉ARM Cortex-M架构;
掌握FreeRTOS实时操作系统,熟练运用任务调度、消息队列、信号量、互斥锁等机制进行多任务开发;熟悉I2C、SPI、UART、CAN、DCMI等通信协议,具备独立编写传感器、存储器、外设驱动能力;
具备硬件调试经验,熟练使用示波器、逻辑分析仪、万用表等调试工具;了解ESP8266/ESP32 WiFi模块开发,掌握AT指令集与TCP/UDP通信;
熟悉MQTT协议,有阿里云IoT、OneNET等云平台对接经验,实现设备上云与远程控制;了解NB-IoT、LoRa等低功耗广域网通信技术;
软件开发相关技能:
精通c/c++语言,熟悉面向对象编程,掌握常见的设计模式
精通Linux系统编程,文件I/O,进程、进程间通讯、线程、线程同步、Socket网络编程。
熟悉Qt Creator Visual Code等开发工具,熟悉掌握Qt库及其框架,有Qt跨平台(Windows、Linux、Mac)编译的经验
熟悉shell脚本 、SQLITE,MySQL应用开发。
熟悉Socke网络编程技术,熟悉串口协议,多线程开发,熟悉网络通信协议如:Tcp/IP,Udp,Http等了解软件版本管理Git工具的使用

项目经验

:基于Linux 远程终端管理系统
硬件平台:通用 PC 服务器 / 虚拟机:Intel x86_64 架构处理器,2GB 以上内存,20GB 以上存储;网络环境:TCP/IP 局域网(支持跨主机通信)
软件平台:操作系统:Ubuntu 22.04 LTS(Linux 内核 5.15+)编译器:GCC 11.4.0(支持 C11 标准)
开发工具:VS Code + C/C++ 扩展系统库:POSIX 线程库(pthread)、Socket 网络库、标准 C 库
使用技术: 网络编程:TCP Socket 套接字,实现 C/S 架构可靠通信
多线程并发:pthread 库实现服务器多线程模型,支持多客户端同时连接
数据结构:单链表实现用户链表和在线用户链表,支持动态增删查
线程同步:互斥锁(pthread_mutex_t)保护共享资源,解决多线程竞态问题
自定义协议:设计统一的二进制协议包,规范客户端与服务器通信格式
文件 I/O:实现用户账号数据的持久化存储与加载
进程控制:popen 函数执行系统命令并捕获输出结果
心跳机制:客户端后台线程定时发送心跳包,实现在线状态检测
项目描述
本项目是一个基于TCP 多线程 C/S 架构的 Linux 远程终端管理系统,旨在实现远程服务器管理与多用户即时通信。系统采用模块化设计,服务器端通过多线程并发处理多个客户端连接,使用自定义协议包统一通信格式,通过双链表管理用户数据与在线 状态, 结合互斥锁保证线程安全。
项目完整实现了用户注册登录、远程命令执行、多用户在线聊天、心跳保活等核心功能,解决了传统远程工具功能单一、交互性差的问题,同时具备良好的稳定性和可扩展性。
功能模块实现
1. 通信协议模块
设计统一的Protocol结构体作为通信载体,包含数据包类型、用户名、密码、命令、聊天内容等字段
定义 7 种数据包类型(注册、登录、命令、聊天、心跳、退出、在线查询)
客户端与服务器采用相同的协议定义,保证数据解析一致性
2. 用户管理模块
用户链表:存储所有注册用户的账号密码,服务器启动时从users.txt文件加载
在线链表:存储当前登录用户的用户名与对应的 Socket 文件描述符
注册功能:用户名查重,注册成功后同时写入链表和本地文件
登录功能:账号密码验证、重复登录检测,登录成功后加入在线链表
数据持久化:所有注册用户信息永久保存在文本文件中
3. 服务器并发模块
采用主线程 + 工作线程模型:主线程循环accept等待客户端连接
每接入一个新客户端,创建一个独立的工作线程处理其所有通信
工作线程通过switch-case根据数据包类型分发处理不同业务逻辑
线程分离设计,自动回收退出线程的资源
4. 远程命令模块
客户端输入 Shell 命令,打包成命令包发送给服务器
服务器通过popen执行命令,捕获标准输出结果
将执行结果打包返回给客户端并显示
支持ls -l、pwd、ps等所有 Linux 系统命令,错误命令返回提示信息
5. 在线聊天模块
客户端指定聊天对象与内容,发送给服务器
服务器遍历在线链表,查找目标用户对应的 Socket
将消息转发给目标用户,实现点对点单聊
消息包含发送者、发送时间、内容等信息,实时弹出显示
6. 心跳保活模块
客户端后台启动心跳线程,每隔 3 秒向服务器发送一次心跳包
服务器接收心跳包后更新用户在线状态
客户端异常断开时,服务器自动从在线链表删除该用户
7. 线程安全模块
对所有共享资源(用户链表、在线链表、文件)的操作加互斥锁保护
避免多线程同时修改数据导致的错乱、崩溃等问题
保证数据一致性和系统稳定性
我的职责
1.需求分析与架构设计:梳理项目需求,设计 C/S 整体架构,划分功能模块
2.通信协议设计:定义统一的二进制通信协议,规范数据交互格式
3.服务器端开发:实现多线程并发框架、双链表管理、所有业务逻辑处理函数
4.客户端开发:实现菜单交互界面、后台心跳线程、消息接收线程
5.线程安全设计:引入互斥锁保护共享资源,解决多线程竞态问题
6.测试与调试:编写测试用例,完成功能测试、并发测试和异常场景测试
7.文档编写:撰写项目设计文档、使用说明和测试报告

团队情况

  • 整包服务: 微信公众号开发   微信小程序开发   PC网站开发   H5网站开发   WebApp开发   文档原型图   运维类开发   
角色 职位
负责人 嵌入式开发
队员 iOS工程师
队员 安卓工程师
队员 前端工程师
队员 后端工程师

信用行为

  • 接单
    0
  • 评价
    0
  • 收藏
    0
微信扫码,建群沟通

发布任务

企业点击发布任务,工程师会在任务下报名,招聘专员也会在1小时内与您联系,1小时内精准确定人才

微信接收人才推送

关注猿急送微信平台,接收实时人才推送

接收人才推送
联系需求方端客服
联系需求方端客服