日期:2014-05-19  浏览次数:20884 次

新人, socket如何循环接收数据?
新人,   socket如何循环接收数据?   对方发过来有70000     字节   现在每次只能收1500字节。   如何循环接收。   最好有代码   谢谢!

------解决方案--------------------
byte[] buff = new byte[1500];

int bytesReceived = 0;
do
{
int n = socket.Receive(buff, 0 , buff.Length, SocketFlags.None);
bytesReceived += n;
}
while(bytesReceived < 70000);

------解决方案--------------------
<?xml version= "1.0 " encoding= "GB2312 " ?>
- <RESPONSE>
<PAGESIZE> 001233 </PAGESIZE>

上边这些不能算是包头, 它们已经是XML 里边的内容了,我说的包头是指在XML只外的.从Socket接受来的原始数据都是Byte,通常的包头都是用Byte的最前几位.

比如: 00 是特征字,代表一个包开始,然后两位 XX 代表整个包的Byte数目, 然后就是正式的XML文件.

接收的时候先查头两个 Byte, 如果是 00 就是一个包的开始,然后查包的大小......