当前位置:首页 > 单片机 > C语言编程
[导读]本次文件传输的实现主要是通过客户端向服务器发送下载请求,然后在服务器中找到对应的文件并打开文件,再继续向客户端传送文件,而客户端就在不停的接收。这是因为文件可能比较大,一个缓冲数组只能保存一部分文件内容,因此服务器得不断从文件中读取内容并发给客户端,而客户端得不停的循环接收。记住...

本次文件传输的实现主要是通过客户端向服务器发送下载请求,然后在服务器中找到对应的文件并打开文件,再继续向客户端传送文件,而客户端就在不停的接收。这是因为文件可能比较大,一个缓冲数组只能保存一部分文件内容,因此服务器得不断从文件中读取内容并发给客户端,而客户端得不停的循环接收。

记住一定要先运行服务器,在运行客户端。这里是本地回环测试,如果有公网服务器或者局域网测试,请吧127.0.0.1改成对应的服务器所在的计算机的ip地址。


测试过7G的文件传输,总用时02m03s

    ckground-color: rgb(255, 255, 255);">
  • 文件大小读取35s

  • 文件传输0m27s


文件结构:

  • tcpSocket.h 简单封装的Tcp socket接口头文件

  • tcpSocket.c    简单封装的Tcp socket接口源文件

  • server.c          文件传输服务器

  • client.c            文件传输客户端

tcpSocket.h

#ifndef _TCPSOCKET_H_ #define _TCPSOCKET_H_ #include #include #include//头文件 #pragma comment(lib,"ws2_32.lib")//库文件 #define err(errMsg) printf("[error] %s failed,code %d \ line:%d\n",errMsg, WSAGetLastError(),__LINE__); #define PORT 8888//0~1024 是系统保留,我们一般不用 #define SendSize((size_t)(100 * 1024 * 1024))//一次性发送的数据大小 //初始化网络 bool init_Socket(); //关闭网络 bool close_Socket(); //服务器:创建服务器socket SOCKET create_serverSocket(); //客户端:创建客户端socket SOCKET create_clientSocket(const char* ip); #endif // !_TCPSOCKET_H_

tcpSocket.c

#include"tcpSocket.h"
bool init_Socket(){ WSADATA wsadata; if (0 != WSAStartup(MAKEWORD(2, 2),
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭