当前位置:编程学习 > C#/ASP.NET >>

关于TCPClient, 怎么能Stream.Read一次读大于15000 bytes 的数据

我在做一个socket的客户端,但在接收数据包大于15000时必须分2次读,怎么能听一次读完呢? 我试设置SendBufferSize,但没有用。那位高手指点一下。 --------------------编程问答-------------------- 你send的时候能一下全部send出去吗? --------------------编程问答-------------------- 可以,就是读的时候不能一次读完 --------------------编程问答-------------------- 我曾经接收过挺大一个串包的.因为我的包有固定的格式,所以我就先 string s=""; 然后收到串 就 s+=se.readToEnd(); 判断是否到了最后,如果到了就解析去,如没结束就等待下一个Arrived事件. 我曾经试过,一个很大的包TCP过来时,由于网络等原因,不一定能全部在一个事件中全部捕获,有可能分成2-3个,而且同样的包也不一定分的相同.所以不能一次读完可能是由于Arrived事件捕获的间隔造成的吧.
--------------------编程问答-------------------- 我做了一个测试,在服务器端sleep10秒钟,客户端就可以一次收完,但这个办法有点莫名其妙,有更好的方法吗?下面是代码
System.Threading.Thread.Sleep(10000);
ns.Write(byteTime, 0, byteTime.Length); --------------------编程问答-------------------- 有没有搞错这么大的包。
了解一下IP/TCP的基础吧。
这么在的包。会丢包的。 --------------------编程问答--------------------
引用 5 楼 zanfeng 的回复:
有没有搞错这么大的包。 
了解一下IP/TCP的基础吧。 
这么在的包。会丢包的。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,