c语言网络编程传输文件

用fopen函数打开的,且用fprintf写入的。传输txt文件的时候没问题,而传输完doc等文档后却打不开,且提示文档已损坏。什么原因啊?

0

2个回答

doc并不是用ASC码编写的,而是二进制文件。如果读取二进制文件,需要在读取的时候,参数后面加b,比如 “rb”。另外,二进制文件的读取结束也比较特殊,需要用到EOF。如果你用文本方式传输2进制,一来会丢弃比特高位转为字符,二来不能很好的结束文件。所以会提示文档损坏。

1

是不是用fread和fwite函数读取和写入,文件检测就用(p!=EOF)

0
xiongyuanxy
xiongyuanxy 通常来讲是这样。fwrite不需要用EOF,你自己控制文件结束。
4 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
网络编程之实现文件上传下载
1>实现文件下载的思路    其实跟发送消息是差不多的,只是这里接收的消息要存入文件,    客户端 :1>发送命令如 get 1.txt,2>以写的方式打开本地一个同名文件,收取文件内容并写入    服务端 :1>获取命令 ,2>寻找文件并以读的方式打开,把文件内容发送给接收方 2>代码实现    基于之前的粘包处理,改一下数据的读写就好了,从文件读,写入文件...
linux网络编程之断点传输文件
以下载链接“http://www.boa.org/boa-0.94.13.tar.gz”为例:断点续传实验大概步骤: ===================== 1,使用gethostbyname()获取站点“www.boa.org”的IP地址 2,以“boa-0.94.13.tar.gz”为例,构建HTTP请求报文首部: char *httpreq = "GET /boa-0.94.13.ta
网络编程 基于Socket的多文件传输程序实现(一)
[0] 前言-写在开始之前 新人,Java学习中,文章中遗漏错误之处,欢迎斧正 个人博客,完全原创 转载请注明出处。 项目全代码地址:GitHub 最近的学习了IO流和网络编程相关的API.IO流时学会了如何进行本地文件之间的读写操作,而网络编程的Socket类则实现了两台计算机间的数据联通交流.每次学习了新知识,就会忍不住的进行脑洞和实践.因此本文旨在利用两个知识点进行网络编
网络编程(socket)文件图片等传送
网络编程(socket)文件图片等传送
基于C++网络编程的文件传输系统
基于C++网络编程的文件传输系统.C/S模式
套接字编程之大文件传输
使用C语言编写的客户端与服务器,可以进行大文件传输。
基于UDP的多播文件传输
关于使用和相关代码请看博客,主要是使用分片传输完成该内容。
C语言socket 蓝牙文件传输
C语言socket文件传输
Linuxsocket文件传输(C语言,支持断点)
模版来自http://blog.csdn.net/ljd_1986413/article/details/7940938,只是添加了断点功能,本人新手,欢迎大家指正错误。
linux网络编程之实现跨平台PC之间进行文件传输
//实现两台计算机进行文件传输,包括跨平台传输即linux与windows之间 //TCP的文件传输 //文件大小不限制,需要做到将大文件分包去做 server.c //服务端程序 int main(int arg,char * args[ ]) { if(arg < 2) { printf("scanf parameter failed\n"); return 0; }
网络编程——TCP文件传输
网络编程——TCP文件传输 网络编程TCP文件传输 要求  思路  结果  代码  客户端  服务端  要求- 客户端向服务端发起socket连接,建立数据传输通道- 客户端向服务端发送要传输的文件名称,以’#’字符结尾,服务端逐字符接受,知道接收到‘#’- 客户端向服务端发送文件长度,4字节- 客户端向服务端发送文件内容 - 服务端接受完文件之后,发送“OK”- 客户端接收到“OK”,关闭套接字
Linux C语言下TCP传文件,并显示传输进度条
1.本文介绍将文件通过sever传到client端,并显示传输进度条 2.打开一个终端,执行./file_server在file_server所在目录下放好要传的文件tianitande.mp3可通过宏FILE_NAME来改变或者做成参数传进去 3.将file_client拷贝到file_server目录外的其他目录,执行file_client便会将tianitande.mp3
TCP/IP网络编程——基于TCP的半关闭(完成文件传输)
半关闭:只断开一个流file_client.c#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; #include &amp;lt;string.h&amp;gt; #include &amp;lt;unistd.h&amp;gt; #include &amp;lt;arpa/inet.h&amp;gt; #include &amp;lt;sys/socket.h&amp;gt; #define BUF_SI...
C语言写的UDP文件传输
基于客户端服务器的socket局域网内的文件传输,可以传输文本,图片MP3等其他格式 的一般文件,希望能提供帮助!
网络编程 一 发送邮件
20180627********************************************************************* author: wills 我们在浏览网页的时候,经常会遇到这种情况,比如填写表单提交验证码,或者手机验证码,或者是发给你一封邮件,叫你确认,那么这种自动发送邮件是怎么实现的呢? 下面是一个自动发送邮件的例子,希望对大家有用,这个邮件...
适合新手的网络编程,用socket传文件(本例传的是jpg图片) 用到sendfile函数
服务器端代码:用来接受客户端发来的文件 #include #include #include #include #include #include #include #include int main(int argc,char* argv[]) { assert(argc>2); FILE *filefd=fopen("a.jpg","ab"); struct sock
SOCKET发送结构体的方法c/c++
由于recv和send都只能发送字符串,所以必须先将结构体转化成字符串,待发送后再转化回结构体;   利用memcpy()函数void *memcpy(void *dest, const void *src, size_t n); (memcpy指的是c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置...
【网络编程】利用流式套接字实现文件传输实验
实验内容: 1.    客户端向服务端发起socket连接,并建立数据传输通道; 2.    客户端向服务端发送要传输的文件名称,以‘#’字符结尾,服务端逐字符接收,直到接收到#;(变长数据) 3.    客户端向服务端发送文件长度,4字节;(定长数据) 4.    客户端向服务端发送文件内容;(变长数据) 5.    服务端接收完文件后,向客户端发送‚”OK”,以示成功接收。 6.
linux网络编程-UDP实现文件的传输
server.c#include #include #include #include #include #include #include #define PORT 4000 #define BUFLEN 1024 #define ERR_EXIT(m) \ do \ { \ perror(m); \ exit(1); \ }while(0);
网络socket编程实现并发服务器——IO多路复用
IO多路复用
使用TCP从客户端上传图片到服务器端
客户端: package upload.tcp; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.net.Unk
Socket编程一实现简易的聊天功能以及文件传输
干程序是一件枯燥重复的事,每当感到内心浮躁的时候,我就会找小说来看。我从小就喜爱看武侠小说,一直有着武侠梦。从金庸,古龙,梁羽生系列到凤歌(昆仑),孙晓(英雄志)以及萧鼎的(诛仙)让我领略着不一样的江湖。如果你有好看的武侠系列小说,给我留言哦。题外话就扯这么多了,接着还是上技术。看看今天实现的功能效果图:可以这里使用多台手机进行通讯,【凤歌】我采用的服务器发送消息。是不是只有发送消息,有些显得太单调
linux下c语言实现xml传输方式的即时通讯
linux下c语言实现xml传输方式的即时通讯
windows 下实现socket编程_传送文件
windows 下实现socket编程_传送文件 其实,Windows下的socket编程与Linux下的类似,这里不再赘述! 参考:http://blog.csdn.net/chudongfang2015/article/details/51926999 下面直接上代码: cilent.cpp: /************************************
Windows Socket编程之TCP实现大文件的传输
前言: 本文实现以下功能: 在客户端,用户选择本地的某个文件,并发送到服务器端。 在服务器端,接收客户端传输的数据流,并按IP 地址保存在服务器端(文 件名重复的,可以覆盖)。 如果传输过程中服务器端发现客户端断开,服务器端应删除文件,并在屏幕 上提示,如“IP:1.2.3.4 发来abcd.txt 文件过程中失去连接。”。如果客户端发 现服务器端不工作,客户端应有提示“服务器1.2
linux环境下的网络编程(C语言)
前言: 这里给出一个简单的socket网络编程实例,使用tcp协议进行通信。 服务端:进行监听,连接成功后,收到客户端的信息,打印出信息内容,并给客户端发送回应。 客户端:连接成功后,给服务端发送信息,并接收服务端的回应,打印出回应内容。 程序: 服务端 文件名:server.c #include #include #include #include #include #incl
网络编程Socket文件上传到服务器
服务器: package com.softeem.scokt; import java.io.BufferedInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.I
C/C++ 网络编程: 各类协议数据结构
宏定义 一些宏定义 #define EPT_IP 0x0800 /* type: IP */ #define EPT_ARP 0x0806 /* type: ARP */ #define EPT_RARP 0x8035 /* type: RARP */ #define ARP_HARDWARE 0x0001 /* Dummy type for 802.
Linux网络编程--sendfile零拷贝高效率发送文件
本博文介绍使用sendfile函数进行零拷贝发送文件,实现高效数据传输,并对其进行验证。 那么什么是sendfile呢? linux系统使用man sendfile,查看sendfile原型如下: #include        ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count); Sendfile
串口传文件(非终端串口,自己定协议下位机部分C语言实现)
之前项目中有个地方要实现一个功能,就是通过非终端串口传输文件,这里将其作为一个小功能模块,简单的介绍一下自己是如何实现的!SecureCRT超级终端上可以通过lrz等工具通过命令传输文件这个就不介绍,之前的博客也有写过怎么编译移植使用这个工具,这次是自己来编码实现通过非终端调试串口来安全可靠的传输任何文件。 其实刚开始想的时候觉得有一点难度,一是要自己定协议,如何定协议才合理呢?二是当时自己也想
网络编程 基于TCP的多文件传输程序(二)
新人,Java学习中,文章中遗漏错误之处,欢迎斧正 个人博客,完全原创 转载请注明出处。 项目全代码地址:GitHub 前一期文章:网络编程 基于Socket的多文件传输程序实现(一)
网络编程--实现跨平台传输文件(TCP版)
网络编程--实现跨平台传输文件(TCP版)
基于TCP传输的网络编程异常处理
 基于TCP传输的网络编程异常处理 一:进程一端退出(exit,CTRL+C,挂掉)(跟主动CLOSE、主动关机一样)  内核会关闭所有句柄触发FIN分节发送(但如果设置了SO_LINGER l_onoff为1,则发送RST分节对方)  FIN分节处理: 另一端recv 返回0 表示对端结束  RST分节处理: 另一端recv 返回-1 表示对端错误,错误码为connection r
C语言实现TCP服务端与客户端交互
基于C语言socket编写的服务端和客户端,实现了两者之间的信息传输
JAVA 基础 网络编程 简单实现文件上传
1        1)SERVERpackage fileUpLoad; import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import ...
Java网络编程:TCP实现文件传输
客户端: import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetSocketAddress; import java.net.Sock...
网络编程Scoket通信之简单模拟QQ对话!(控制台)
服务器: package com.softeem.scokt; import java.io.IOException; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; public class ServerDemo {
Linux 树莓派上简单的网络编程程序实现
客户端程序,向服务器发送helloworld消息 #include #include #include #include #include #include #include #include #include #include int main() { int client_sockfd = -1;
网络编程(4)用TCP实现图片上传
分析: 客户端:要求你从c盘下获取一张图片 服务器:收到客户端的获取图片,并保存到一个文件夹中。 数据源:C盘的图片 数据目的:服务器 /*  * 实现TCP图片上传客户端  * 1、Socket连接服务器,连不上啥也不说了  * 2、通过Socket获取字节输出流,写图片  * 3、使用自己的流对象读取图片数据源  * 4、读取图片将图片写到服务器,采取字节缓冲流提高效率  * 5、使...
Java---网络编程(3)-TCP-互传文件和图片
☆ TCP 建立连接,形成传输数据的通道。 在连接中进行大数据量传输 通过三次握手完成连接,是可靠协议 必须建立连接,效率会稍低 Socket 和 ServerSocket类 TCP传输 TCP Socket:IP地址和端口,套接字 Socket和ServerSocket 建立客户端和服务器端 建立连接后,通过Socket中的IO流进行数据的传输 关...