C#中用TCP(同步或异步)如何从NetworkStream获取完整文件的问题??

[复制链接]
查看11 | 回复3 | 2008-5-28 16:03:22 | 显示全部楼层 |阅读模式
我现在用同步:

do{

count = client.GetStream().Read(fileBuffer, 0, fileBuffer.Length);

mem.Write(fileBuffer, 0, count);

//mem是个memoryStream对象



} while (client.GetStream().DataAvailable);//有可用数据时
一般应该是怎么接受数据啊?(有没有一般方法?)用这个do-while(**.DataAvailable)对不对啊??还有一半是用MemoryStream暂存吗
我要获得一个_完整_的XML文件,字符多了少了都会错!!!
现在的结果是总是多了一块文本或者少了一部分...怎么解决啊????
难受死了~!~~~~~~~~~~
用MemoryStream只是不想中间生成一个文件,我想直接获取收到的XML文本数据

回复

使用道具 举报

千问 | 2008-5-28 16:03:22 | 显示全部楼层
这样写看看:while ((len =objclient.GetStream().Read(fileBuffer, 0, fileBuffer.Length)) != 0){
mem.Write(fileBuffer, 0, len);} 不知道你用memorystream有什么特别的用途。如果是写文件用filestream就行,filestream是高级流最好用BinaryReader这样的二进制低级流写入filestream
回复

使用道具 举报

千问 | 2008-5-28 16:03:22 | 显示全部楼层
这样试试C端请求(并发送字节数)S端接受,发送允许信息C端开始发送
回复

使用道具 举报

千问 | 2008-5-28 16:03:22 | 显示全部楼层
mem.Write(count); 这样写看看,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行