socket网络通信,传输文件,c/c++

这篇博客介绍了如何使用C语言基于TCP协议实现网络文件传输。内容包括文件传输的函数(接收、保存、发送、接收文件),socket的初始化(网络库初始化、关闭、创建套接字)以及在服务端和客户端的文件发送过程。
摘要由CSDN通过智能技术生成

        当我们在实现网络通信时,避免不了发送文件,在这里给出基于tcp协议的文件传输,使用C语言编写,当然此程序亦可以传输字符串,详情请看我的上一篇博客http://t.csdn.cn/o0Qlv,以下先给出发送文件需要用到的函数,再对socket套接字进行初始化,最后给出main函数。

一,文件传输函数

        1.接收文件

bool readFile(const char* fileName)
{
	FILE* read = fopen(fileName, "rb");//文件名,二进制打开
	if (!read)
	{
		perror("file open failed:\n");
		return false;
	}

	//获取文件大小
	fseek(read, 0, SEEK_END);//将文件位置指针移动到最后
	g_fileSzie=ftell(read);//
	fseek(read, 0, SEEK_SET);//移动到开头
	printf("filesize :%d\n",g_fileSzie);

	//分配内存
	g_fileBuf = calloc(g_fileSzie, sizeof(char));//申请内存,初始化为0
	if (!g_fileBuf)
	{
		return false;		
	}
	//读入内存
	fread(g_fileBuf, sizeof(char), g_fileSzie,read);

	fclose(read);
	return true;
}

        2.保存文件

bool saveFile(const char* fileName)
{

	FILE* write = fopen(fileName, "w
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值