110,566
社区成员
发帖
与我相关
我的任务
分享
byte[] buffer=new byte[61];
//....将抓到包头放进去
ns.BeginWrite(buffer,0,buffer.Length,sendCallBack,this);
byte[] buffer=new byte[61];
int numOfBytesRead=ns.Read(buffer,0,buffer.Length);
if(numOfBytesRead==61)
{
//有时候会出现numOfBytesRead=16 ,26的情况
//分析这个数据包,
}
byte[] buffer=new byte[61];
中的61,但实际接收到多少,要看stream实际收到了多少,大于等于61,就给你61个,小于,就收到多少给多少。
byte[] buffer=new byte[61];
int numOfBytesRead=0;
while(numOfBytesRead!=61)
{
numOfBytesRead+=ns.Read(buffer,numOfBytesRead,buffer.Length-numOfBytesRead);
}
再审审上边的代码, 当numOfBytesRead==61, 你的循环就退出了. 如果ns里还有数据,是不是丢了?byte[] buffer=new byte[61];
int numOfBytesRead=0;
while(numOfBytesRead!=61)
{
numOfBytesRead+=ns.Read(buffer,numOfBytesRead,buffer.Length-numOfBytesRead);
}