社区
C#
帖子详情
socket文件传输问题,高手帮忙看看
超越大大
2005-12-13 09:54:52
我用filestream读写文件,用networkstream发送接收文件,为何接收到的文件和原文件大小不一致呢?而且有时会显示接收到的文件已损坏,这会是什么原因造成的呢?
...全文
366
16
打赏
收藏
socket文件传输问题,高手帮忙看看
我用filestream读写文件,用networkstream发送接收文件,为何接收到的文件和原文件大小不一致呢?而且有时会显示接收到的文件已损坏,这会是什么原因造成的呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
超越大大
2005-12-15
打赏
举报
回复
ding
超越大大
2005-12-14
打赏
举报
回复
各位老大能说明白点吗?
超越大大
2005-12-14
打赏
举报
回复
自己顶
coley
2005-12-13
打赏
举报
回复
mark
cdpath
2005-12-13
打赏
举报
回复
缓冲的问题
zhao606
2005-12-13
打赏
举报
回复
传输大小是有默认的吧!
超越大大
2005-12-13
打赏
举报
回复
晕,没人知道?
超越大大
2005-12-13
打赏
举报
回复
//发送文件
private void sendBinary(ref Socket socket, string filePath)
{
try
{
long readcount = fi.Length / 10240;
long byteremain = fi.Length % 10240;
byte[] bb = new byte[10240];
int number;
stream = new NetworkStream(socket);
for (long count1 = 1; count1 <= readcount; count1++)
{
number = filestream.Read(bb, 0, bb.Length);
stream.Write(bb, 0, bb.Length);
stream.Flush();
bb = new byte[10240];
}
if (byteremain != 0)
{
bb = new byte[byteremain];
filestream.Read(bb, 0, bb.Length);
stream.Write(bb, 0, bb.Length);
stream.Flush();
}
filestream.Close();
stream.Close();
richTextBox1.AppendText("文件发送完毕" + "\r\n");
toolStripStatusLabel1.Text = "就绪";
}
catch (Exception f)
{
MessageBox.Show(f.ToString(), "sendbinary errer");
}
//接收文件
private void getBinary(ref Socket socket, string filePath)
{
try
{
filestream = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write);
byte[] bb = new byte[10240];
NetworkStream netStream = new NetworkStream(socket);
long readnumber;
long currentread = 0;
long readcount = Convert.ToInt64(str[1]) / 10240;
long byteremain = Convert.ToInt64(str[1]) % 10240;
while ((readnumber = netStream.Read(bb, 0, bb.Length)) > 0 && currentread != readcount)
{
currentread++;
filestream.Write(bb, 0, bb.Length);
filestream.Flush();
if (currentread == readcount)
{
if (byteremain != 0)
{
bb = new byte[byteremain];
netStream.Read(bb, 0, bb.Length);
filestream.Write(bb, 0, bb.Length);
filestream.Flush();
}
break;
}
}
filestream.Close();
netStream.Close();
richTextBox1.AppendText("接收文件成功\r\n");
filesend = false;
}
catch (Exception f)
{
richTextBox1.AppendText("接收文件时错误" + f.ToString() + "\r\n");
}
}
c11_11_11
2005-12-13
打赏
举报
回复
fen
yuanreid
2005-12-13
打赏
举报
回复
顶
yybb520
2005-12-13
打赏
举报
回复
我想是读了固定的长度了,每一次读了固定的长度,那么就可能导致你双方的文件不一至,最后总得有校验吧?
malongning
2005-12-13
打赏
举报
回复
看一下你的接收程序和发送程序能否对应,把原代码帖出来给你看
linanwang
2005-12-13
打赏
举报
回复
你什么都不贴,帮你看什么?
超越大大
2005-12-13
打赏
举报
回复
我对文件长度进行了判断,读的不是固定长度字节,而且不是每次传送文件的时候都有问题,是传送大文件时有时会出错
stonegoldaustin
2005-12-13
打赏
举报
回复
非常明显,你传送的数据不正确,
比如,对文件长度没有判断,每次都读固定长度的字节,那么最后一次就有可能多传了数据
超越大大
2005-12-13
打赏
举报
回复
csdn里没人知道吗?
java
socket
视频传输_我用java
socket
写的局域网传输视频文件,而且客户端也可以完整接收,但是视频接收后无法播放,
帮忙
.代码下....
代码:服务器端DataOutputStreamdOut=null;BufferedInputStreamin=null;Stringpath="";byte[]buffer=newbyte[1024*5];try{dOut=this.getDataOutputStream(s
Socket
);Filefile=newFile(p...代码:服务器端 DataOutputStream dOut = ...
请
帮忙
~~各位大哥,C#编程 用
socket
套接字实现文件和文字的传输 怎么编写??????
请
帮忙
~~各位大哥,C#编程 用
socket
套接字实现文件和文字的传输 怎么编写??????就好像在聊天室发送文件那样,一个服务器端,一个客户端,之间进行文件的传输?这个怎么弄啊?麻烦各位
高手
了,帮小弟看一下,多谢!!~~
基于C++的高效TCP
文件传输
类设计与实现
Closed, // 初始/断开状态Connecting, // 正在连接中(非阻塞 connect)Connected, // 已建立连接Closing, // 正在优雅关闭Error // 发生不可恢复错误状态转换图长这样:有了这个图,谁都能一眼看懂连接是怎么一步步走下来的。而且测试人员还能根据它写出完整的路径覆盖用例,大大增强健壮性。回顾这一路,我们从最基本的
socket
()调用出发,逐步构建了一个功能完整、结构清晰、性能优异的TCP网络框架。
关于
socket
长连接的心跳包GOOD
TCP的
socket
本身就是长连接的,那么为什么还要心跳包呢? 在smack里有个30s发送一个空消息的线程,同样关于心跳包(keepalive) 据网络搜索到的资料解释如下 内网机器如果不主动向外发起连接,外网机没法直连内网的,这也是内网机安全的原因之一,又因为路由器会把这个关系记录下来,但是过一段时间这个记录可能会丢失 ,所有每一个客户端每隔一定时间就会向服务器发送
【
Socket
】关于
socket
长连接的心跳包
TCP的
socket
本身就是长连接的,那么为什么还要心跳包呢? 在smack里有个30s发送一个空消息的线程,同样关于心跳包(keepalive) 据网络搜索到的资料解释如下 内网机器如果不主动向外发起连接,外网机没法直连内网的,这也是内网机安全的原因之一,又因为路由器会把这个关系记录下来,但是过一段时间这个记录可能会丢失 ,所有每一个客户端每隔一定时间就会向服务器发送消息,以...
C#
111,124
社区成员
642,538
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章