Socket TCP传输大文件

cjzemail 2010-12-07 12:30:37
请问大牛们,TCP传输大文件,要怎么实现啊,思路是怎么样的,请给小弟指点下,谢谢。。。。
要是有源码例子,更好。。。。
...全文
946 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
mjp1234airen4385 2011-07-22
  • 打赏
  • 举报
回复
挖坟帖。
在路上20130607 2011-07-22
  • 打赏
  • 举报
回复
先压缩 在传 如果是文本文件之类的 这一次压缩 很明显
abee23 2011-07-18
  • 打赏
  • 举报
回复
就是分块传输! 传过去的是看作是一个对象序列。 接收方则把文件块合并起来。
cjzemail 2010-12-18
  • 打赏
  • 举报
回复
发我QQ邮箱也可以啊385700511@qq.com,谢谢啦
upc_linshi 2010-12-18
  • 打赏
  • 举报
回复
我一般用qq或u盘
cjzemail 2010-12-18
  • 打赏
  • 举报
回复
楼上能不能发个给我看下,研究下,邮箱mycjzlove@126.com谢谢啦。。。。。。。。
wenggod 2010-12-07
  • 打赏
  • 举报
回复
除了分段还是分段,前几天刚写了个,思路就是把文件分成固定的块,每个快传输完后再发送下一个块
cjzemail 2010-12-07
  • 打赏
  • 举报
回复
要传1G到2G的文件,有什么更好的解决办法吗?
gong_max 2010-12-07
  • 打赏
  • 举报
回复
在使用即时聊天工具,或者像飞鸽传书这种软件时,他们使用的都是什么协议呢?
qqaoshi888 2010-12-07
  • 打赏
  • 举报
回复
这个可以使用文件分段传送,给你个伪代码:

long fileLength;//文件长度
long sendLength =1024;//每次要发送的长度
Byte [] sendBuffer=new Byte[sendLength];
for(long offset =0 ;offset <fileLength;offset +=sendLength)
{
sendBuffer=filestream.Read(sendBuffer,offset,sendLength);
networkstream.write(sendBuffer,0,sendBuffer.Length);
}
laj0600310219 2010-12-07
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 dragonforfly 的回复:]
使用二进制分块读取文件,然后发送,例如一次读取1000byte,进行发送,两边都最好纪录日志,以方便重新发送.
[/Quote]
udp貌似一次最大只能1024*64个字节。。。
mjp1234airen4385 2010-12-07
  • 打赏
  • 举报
回复
参考
实际使用过,可以传送文件。
但是不知道你的文件有多大了。
太大了估计会出问题(1G以上)
try_best7 2010-12-07
  • 打赏
  • 举报
回复
用断点上传,网上有资料。
Alden 2010-12-07
  • 打赏
  • 举报
回复
使用二进制分块读取文件,然后发送,例如一次读取1000byte,进行发送,两边都最好纪录日志,以方便重新发送.
cjzemail 2010-12-07
  • 打赏
  • 举报
回复
5楼的,文件分段传输,能不能给个例子,谢谢。。。。。。。。
phil999 2010-12-07
  • 打赏
  • 举报
回复
楼主的环境中 FTP 不可用?
laj0600310219 2010-12-07
  • 打赏
  • 举报
回复
思路就是你要分段来进行传输。。。

110,571

社区成员

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

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

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