C# Socket FastDFS第二次上传报错:无法从传输连接中读取数据: 你的主机中的软件中止了一个已建立的连接。

亚美V蝶 2018-09-20 02:31:23
在使用FastDFS追加上传时,第一次1M可以上传成功,第二次就不行
报错: 无法从传输连接中读取数据: 你的主机中的软件中止了一个已建立的连接。
public FDFSHeader(Stream stream)
{
var headerBuffer = new byte[Consts.FDFS_PROTO_PKG_LEN_SIZE + 2];
int bytesRead = 0;
try
{
bytesRead=stream.Read(headerBuffer, 0, headerBuffer.Length);
}
catch (Exception e)
{
throw e;//报错 无法从传输连接中读取数据: 你的主机中的软件中止了一个已建立的连接。
}
if (bytesRead == 0)
throw new FDFSException("Init Header Exeption : Cann't Read Stream");
Length = Util.BufferToLong(headerBuffer, 0);
Command = headerBuffer[Consts.FDFS_PROTO_PKG_LEN_SIZE];
Status = headerBuffer[Consts.FDFS_PROTO_PKG_LEN_SIZE + 1];
}
一次全部上传也可以 分段就不行
...全文
1315 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
亚美V蝶 2018-09-20
  • 打赏
  • 举报
回复
问题已解决,由于没有第一次没有使用UploadAppenderFile,使用的是UploadFile,导致服务器关闭连接
Re:  FastDFS 分布式文件系统部署 ============================== FastDFS 分布式存储主要功能有:文件存储,文件同步,文件访问(文件上传/下载),特别适合以文件为载体的在线服务,如图片网站,视频网站等 它的存储特点是对文件体积小或超小,同时文件的数量特别多的存储情况支持较好,(如果是大文件的存储就推荐使用 Glusterfs 分布式网络文件存储),所谓的小文件就是指网站的图片,文档或者小视频等等,体积范围在4K~500MB之间。所谓的大文件指软件的镜像包、电影等等。 除了FastDFS存储文件特点之外,它同时具备自我负载均衡的能力,可以解决了运维自动化的关键问题。 # 块存储、文件存储、对象存储这三者的本质差别是什么? 1)块存储:磁盘阵列,硬盘(块存储主要是将裸磁盘空间整个映射给主机使用的) 2)文件存储:FTP、NFS服务器(解决文件无法共享的问题) 3)对象存储:内置大容量硬盘的分布式服务器(解决容量、性能、可靠性等问题) 多台服务器内置大容量硬盘,再装上对象存储软件, 然后再额外搞几台服务作为管理节点,安装上对象存储管理软件。 # gluterfs主要运行场景: 存储大文件,针对小文件或超小文件的支持比较差 KVM镜像 视频文件 # FastDFS主要运行场景: 存放文件size范围:4K~500MB # 对象存储 - GlusterFS、Ceph、FastDFS(非对象存储) 必备技能:DRBD/NFS/MooseFS/ GlusterFS/ FastDFS/TFS(http://tfs.taobao.org/)/ # 访问客户端:只能专用API访问实现 存放单元文件size范围:4K~500MB(阅读、声音、视频网站) # 典型用户:      ... ... 

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧