社区
C#
帖子详情
socket文件传输问题,高手帮忙看看
超越大大
2005-12-13 09:54:52
我用filestream读写文件,用networkstream发送接收文件,为何接收到的文件和原文件大小不一致呢?而且有时会显示接收到的文件已损坏,这会是什么原因造成的呢?
...全文
351
16
打赏
收藏
socket文件传输问题,高手帮忙看看
我用filestream读写文件,用networkstream发送接收文件,为何接收到的文件和原文件大小不一致呢?而且有时会显示接收到的文件已损坏,这会是什么原因造成的呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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="";...try{dOut=this.getDataOutputStream(s
Socket
);Filefile=newFile(p...代码:服务器端 DataOutputStream dOut = ...
请
帮忙
~~各位大哥,C#编程 用
socket
套接字实现文件和文字的传输 怎么编写??????
请
帮忙
~~各位大哥,C#编程 用
socket
套接字实现文件和文字的传输 怎么编写??????就好像在聊天室发送文件那样,一个服务器端,一个客户端,之间进行文件的传输?这个怎么弄啊?麻烦各位
高手
了,帮小弟看一下,...
关于
socket
长连接的心跳包GOOD
TCP的
socket
本身就是长连接的,那么为什么还要心跳包呢? 在smack里有个30s发送一个空消息的线程,同样关于心跳包(keepalive) 据网络搜索到的资料解释如下 内网机器如果不主动向外发起连接,外网机...
【
Socket
】关于
socket
长连接的心跳包
TCP的
socket
本身就是长连接的,那么为什么还要心跳包呢? 在smack里有个30s发送一个空消息的线程,同样关于心跳包(keepalive) 据网络搜索到的资料解释如下 内网机器如果不主动向外发起连接,外网机没法直...
socket
收发
您当前的位置:同创IT → 编程技术 →VC/MFC → 网络编程 → 文章信息基于TCP数据...做一个基于TCP的
文件传输
程序:发送端如下:
SOCKET
sockConn=accept(FileSock.File
Socket
,(SOCKADDR*)&addrfrom,&length);do{dwRead=s
C#
111,092
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章