while(true)
{
vData=new byte[1024]; bytes=vSocket.Receive(vData);
if(bytes<=0) break;
vFileStream.Write(vData,0,vData.Length);
}
{
vData=new byte[1024]; bytes=vSocket.Receive(vData);
if(bytes<=0) break;
vFileStream.Write(vData,0,vData.Length);
}
解决方案 »
- C# 多线程后台线程的ThreadState问题
- 如何在控制台实现类似TreeView控间的图形。
- 求个调试小工具或者调试方法
- 为什么写不进数据库
- vs2005用mvc,需要装哪些东西
- while(buffter=="")""指的是什么??
- 高手帮忙解决一下海量数据导入的问题
- ArrayList.BinarySearch (Object, IComparer) 的实现问题
- 谁有C#开发的餐饮管理软件,请与我联系,最好能够发个测试版过来看看,本酒店要想买
- 如何在 c# 中设置excel 的某一列为文本,以及他的背景颜色
- 请关注 http://expert.csdn.net/Expert/topic/1342/1342541.xml?temp=.692959 (急急急急急急)
- .net 能否完全脱离win32 API??
{
vData=new byte[1024];
bytes=vSocket.Receive(vData);
if(bytes<=0) break;
vFileStream.Write(vData,0,vData.Length);
}
.Write(vData,0,vData.Length);
接收用1024长度,但是每接收包内容并不能达到1024,写入文件后有垃圾数据。如果接收长度换成vSocket.Available长度,结果还是不对。还有,发送端发送后,程序怎么不阻塞?
vFileStream.Write(vData,0,bytes);
string recvStr="";
//声明字节数组,一次接收数据的长度为1024字节
byte[] recvBytes=new byte[1024];
//返回实际接收内容的字节数
int bytes=0;
//循环读取,直到接收完所有数据
while(true)
{
bytes=socket.Receive(recvBytes,recvBytes.Length,0);
//读取完成后退出循环
if(bytes<=0)
break;
//将读取的字节数转换为字符串
recvStr+=Encoding.ASCII.GetString(recvBytes,0,bytes);
}
//将所读取的字符串转换为字节数组
byte[] content=Encoding.ASCII.GetBytes(recvStr);
try
{
//创建文件流对象实例
FileStream fs=new FileStream(fileName,FileMode.OpenOrCreate,FileAccess.ReadWrite);
//写入文件
fs.Write(content,0,content.Length);
}
catch(Exception fe)
{
MessageBox.Show("文件创建/写入错误:"+fe.Message,"提示信息",MessageBoxButtons.RetryCancel,MessageBoxIcon.Information);
}