永发信息网

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

答案:4  悬赏:30  手机版
解决时间 2021-02-14 16:03
  • 提问者网友:遮云壑
  • 2021-02-14 11:31
我现在用同步:
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文本数据
最佳答案
  • 五星知识达人网友:千杯敬自由
  • 2021-02-14 11:44
mem.Write(count);
这样写看看,
全部回答
  • 1楼网友:醉吻情书
  • 2021-02-14 13:48
这样试试 C端请求(并发送字节数) S端接受,发送允许信息 C端开始发送
  • 2楼网友:轻熟杀无赦
  • 2021-02-14 12:20
这样写看看: while ((len =objclient.GetStream().Read(fileBuffer, 0, fileBuffer.Length)) != 0) { mem.Write(fileBuffer, 0, len); } 不知道你用memorystream有什么特别的用途。如果是写文件用filestream就行,filestream是高级流最好用BinaryReader这样的二进制低级流写入filestream
  • 3楼网友:妄饮晩冬酒
  • 2021-02-14 12:06
大概要用查找且替换吧 MemoryStream似乎会多些空格
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯