文件传输文件变大,10M视频变14M,请大虾们看看。

blue_apple2006 2007-08-23 09:06:43
点对点接收端函数:

public void fileClient()
{
if(MessageBox.Show("是否接受文件"+receiveData+"来源于:"+ipAddress,"接收文件",MessageBoxButtons.OKCancel,MessageBoxIcon.Information)==DialogResult.OK)
{
string s=receiveData.Substring(receiveData.LastIndexOf("."));
SaveFileDialog saveFile=new SaveFileDialog();
saveFile.Filter="*"+s+"|"+"*"+s;
if(saveFile.ShowDialog()==DialogResult.OK)
{
string fileName=saveFile.FileName;
TcpClient client=new TcpClient();
client.Connect(IPAddress.Parse(ipAddress),this.filePort);
NetworkStream ns=client.GetStream();
FileInfo f=new FileInfo(fileName);
FileStream fs=new FileStream(fileName,FileMode.Create);
byte[] b=new byte[1024];
while(ns.Read(b,0,b.Length)!=0)
{
fs.Write(b,0,b.Length);
fs.Flush();
}
ns.Close();
fs.Close();
MessageBox.Show("文件传输完毕!","发送文件...",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
else
{ //拒绝接受文件
CUserUI.SendMessage(2,Encoding.Default.GetBytes(""),ipAddress);
}
}

发送端函数:
public void fileServer()
{
if(this.openFileDialog1.ShowDialog()==DialogResult.OK)
{
string fileName=this.openFileDialog1.FileName;
string fileTitle=fileName.Substring(fileName.LastIndexOf("\\")+1,fileName.Length-fileName.LastIndexOf("\\")-1);
richBoxChat.AppendText("等待对方接收文件"+": "+fileTitle+"请等待回应\n");
CUserUI.SendMessage(1,Encoding.Default.GetBytes(fileTitle),CUserUI.friendsInfo[this.index].IP);

int filePort=5001;
TcpListener tcpListener=new TcpListener(filePort);
tcpListener.Start();
TcpClient client=tcpListener.AcceptTcpClient();
NetworkStream ns=client.GetStream();
FileInfo f=new FileInfo(fileName);
int index=0;
FileStream fs=new FileStream(fileName,FileMode.Open);
byte[] b=new byte[1024];
while(index<f.Length)
{
fs.Read(b,0,b.Length);
index+=b.Length;
ns.Write(b,0,b.Length);
}
fs.Flush();
ns.Close();
fs.Close();
this.richBoxChat.AppendText("文件传输完毕!");
}
}
...全文
205 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
w_l_851110 2010-12-14
  • 打赏
  • 举报
回复
楼主不厚道 也不把原因说下
blue_apple2006 2007-08-23
  • 打赏
  • 举报
回复
已经解决,是缓冲区问题。
yiwindlele 2007-08-23
  • 打赏
  • 举报
回复
打开变成14M的文件看看到底多了些什么内容......
foyuan 2007-08-23
  • 打赏
  • 举报
回复
把文件 GZip压缩一下
yiwindlele 2007-08-23
  • 打赏
  • 举报
回复
是不是把接受BUFF改小一点就正常了?

110,534

社区成员

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

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

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