当我们在实现网络通信时,避免不了发送文件,在这里给出基于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