# File_Transfer **Repository Path**: emperor-jinnan/File_Transfer ## Basic Information - **Project Name**: File_Transfer - **Description**: C语言实现的TCP文件传输系统,支持大文件分块传输、自动目录创建、实时进度显示,适合局域网环境快速共享文件。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-18 - **Last Updated**: 2025-10-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README C 语言局域网文件传输工具 一款轻量、高效的局域网文件传输工具,基于 C 语言开发,支持单文件、多文件及文件夹的快速传输,具备进度显示、自动续传等实用功能,操作简单易上手。 📋 项目简介 本工具专为局域网环境设计,解决传统文件传输方式(如 U 盘拷贝、在线传输)在局域网内效率低、操作繁琐的问题。通过简单的命令行指令,即可实现跨设备的文件 / 文件夹传输,适用于开发调试、办公文件共享、家庭设备数据同步等场景。 🚀 快速开始 1. 环境准备 操作系统:Linux/macOS(支持命令行编译环境) 编译工具:GCC(可通过 gcc -v 检查是否安装,未安装可执行 sudo apt install gcc(Linux) 或 brew install gcc(macOS)) 2. 编译程序 在项目根目录打开终端,执行以下命令编译服务器(发送端)和客户端(接收端)程序: # 编译服务器程序(负责发送文件) gcc server.c -o server # 编译客户端程序(负责接收文件) gcc client.c -o client 3. 核心使用顺序 必须严格遵循以下顺序操作,否则会导致连接失败: 先在文件发送端(如电脑 A)启动服务器程序 再在文件接收端(如电脑 B)启动客户端程序连接服务器 📤 服务器使用方法(发送文件) 在需要发送文件的设备上,根据传输需求执行对应命令,端口号建议使用 8819(若该端口被占用,可更换为 8000-65535 范围内未占用的端口)。 发送单个文件 ./server 8819 test.pdf 传输当前目录下的 test.pdf 文件 发送多个指定文件 ./server 8819 doc1.txt pic2.png data3.zip 同时传输 doc1.txt、pic2.png 等文件 发送当前目录所有文件 ./server 8819 * 传输当前目录下所有文件(不包含子文件夹) 发送整个文件夹(含子目录) ./server 8819 -d ./my-project 传输 my-project 文件夹及内部所有内容 📥 客户端使用方法(接收文件) 在需要接收文件的设备上,先获取服务器设备的局域网 IP 地址,再执行连接命令。 步骤 1:获取服务器 IP 地址 在服务器设备的终端中执行以下命令,找到类似 inet 192.168.1.105/24 的内容,其中 192.168.1.105 即为服务器局域网 IP: ifcomfg 步骤 2:连接服务器接收文件 # 格式:./client 服务器IP地址 服务器端口号 ./client 192.168.1.105 8819 本地测试(同一台设备) 若需在同一台设备上测试传输功能,服务器 IP 可使用本地回环地址 127.0.0.1: # 服务器端(终端1) ./server 8819 test.txt # 客户端(终端2) ./client 127.0.0.1 8819 💡 常用场景案例 案例 1:传输单个重要文件(如 PDF 文档) 服务器端(发送方): # 启动服务器,发送 important.pdf 文件,使用8819端口 ./server 8819 important.pdf 客户端(接收方): # 连接服务器(假设服务器IP为172.23.117.106) ./client 172.23.117.106 8819 案例 2:传输整个项目文件夹 服务器端(发送方): # 发送当前目录下的 "my-code" 项目文件夹 ./server 8819 -d ./my-code 客户端(接收方): # 连接后自动接收文件夹及内部所有文件,保持目录结构 ./client 172.23.117.106 8819 ✨ 功能特点 ✅ 多文件传输:支持同时传输多个指定文件,无需逐个操作 ✅ 文件夹传输:自动识别文件夹结构,接收端自动重建目录 ✅ 进度显示:传输过程中实时显示进度百分比,了解传输状态 ✅ 自动续传:传输中断后,重新运行客户端可自动恢复传输,无需从头开始 ✅ 错误处理:针对连接失败、文件损坏等问题提供友好提示 ✅ 大文件支持:无文件大小限制,可稳定传输 GB 级大文件 ✅ 跨设备兼容:支持 Linux 与 macOS 设备间跨系统传输 ❓ 常见问题(FAQ) Q:运行客户端时提示 “连接被拒绝”? A:① 检查服务器是否已启动;② 确认服务器 IP 地址和端口号是否输入正确;③ 检查两台设备是否在同一局域网(如连接同一 WiFi)。 Q:不知道服务器的局域网 IP 怎么办? A:在服务器设备的终端中执行 ip addr show 命令,查找 inet 开头的局域网 IP(非 127.0.0.1)。 Q:传输过程中突然中断(如网络断开)怎么办? A:无需重新启动服务器,直接在客户端重新执行连接命令,工具会自动检测已传输部分,继续未完成的传输。 Q:接收的文件夹没有按照原结构显示? A:确保服务器端使用 -d 参数指定文件夹传输(如 ./server 8819 -d 文件夹路径),客户端会自动重建目录结构。 ⚠️ 注意事项 严格遵循操作顺序:必须先启动服务器,再启动客户端,反向操作会导致连接失败。 保持网络稳定:传输过程中避免断开 WiFi 或网线,否则可能导致文件损坏(虽支持续传,但仍建议保持网络稳定)。 重要文件备份:传输重要文件前,建议先在原设备备份,避免因异常情况导致文件丢失。 端口占用问题:若使用 8819 端口时提示 “端口已被占用”,可更换为其他端口(如 8820),注意服务器和客户端端口需保持一致。 适用环境:仅支持局域网使用,不支持互联网跨网段传输。