日期:2014-05-20  浏览次数:20911 次

在利用socket进行点对点文件发送文件时,应该用什么方法获取文件流
在利用socket进行点对点文件发送文件时,应该用什么方法获取文件流

GetStream()是什么意思?

NetworkStream   ns   =   myclient.GetStream();


------解决方案--------------------
public void listenPort()
{
TcpListener listener=new TcpListener(2626);
listener.Start();
Socket s=listener.AcceptSocket();
FileStream filestream=new FileStream(savePath,FileMode.OpenOrCreate,FileAccess.Write);
NetworkStream stream=new NetworkStream(s);
//定义缓冲区
byte[] bb=new byte[1024];
//循环读socket流
int tt=0;
//进度条
processB.Visible=true;
processB.BackColor=System.Drawing.SystemColors.Control;
int stepoff;
if(romeFilel[romeFilel.Length-1]== 'K ')
stepoff=1024;
else
stepoff=1024*1024;
int totalste=int.Parse(romeFilel.Substring(0,romeFilel.Length-1));
progressBar2.Maximum=totalste;
progressBar2.Step=totalste/20;
float recbytes=0;
while((tt=stream.Read(bb,0,1024))!=0)
{//接收数据
filestream.Write(bb,0,tt);
filestream.Flush();
//更新进度条
recbytes+=(float)tt/stepoff;
progressBar2.Value=(int)recbytes;
}
filestream.Close();
processB.Visible=false;
MessageBox.Show( "文件接收完毕! ");
}


在我的局域网QQ中有传文件功能
全部代码见:http://www.cnblogs.com/tuyile006/archive/2006/12/30/607823.aspx