d

 1                         int cishu=0;
 2                         if((dataLength)%1020!=0)
 3                             cishu=(dataLength)/1020+1;
 4                         else
 5                             cishu=(dataLength)/1020;
 6                         for(int i=0;i<cishu;i++){
 7                             if((dataLength-1020)>0){
 8                                 sendBuf[3] = (byte)(1020>>24);//小于1020的表示改帧结束,此次发送的长度是datalength
 9                                 sendBuf[2] = (byte)(1020>>16);
10                                 sendBuf[1]  = (byte)(1020>>8);
11                                 sendBuf[0] = (byte)1020;
12                             }else if((dataLength-1020)<0)
13                             {
14                                 sendBuf[3] = (byte)(dataLength>>24);//1020表示改帧未结束,此次发出的长度是1020
15                                 sendBuf[2] = (byte)(dataLength>>16);
16                                 sendBuf[1]  = (byte)(dataLength>>8);
17                                 sendBuf[0] = (byte)dataLength;
18                             }else{
19                                 sendBuf[3] = (byte)(1021>>24);//1021表示表示改帧是结束帧,此次发出的长度是1020
20                                 sendBuf[2] = (byte)(1021>>16);
21                                 sendBuf[1]  = (byte)(1021>>8);
22                                 sendBuf[0] = (byte)1021;
23                             }
24                             if((dataLength-1020)>0)
25                             {
26                                 System.arraycopy(buffer, i*1020, sendBuf, 4, 1020);
27                                 if(xjtuActivity.cv.sendMessage(sendBuf,1024)==false){
28                                     xjtuActivity.messageShow.sendEmptyMessage(6);
29                                     break;
30                                 }
31                                 dataLength=dataLength-1020;
32                             }else{
33                                 System.arraycopy(buffer,(cishu-1)*1020,sendBuf,4,dataLength);
34                                 if(xjtuActivity.cv.sendMessage(sendBuf,dataLength+4)==false){
35                                     xjtuActivity.messageShow.sendEmptyMessage(6);
36                                     break;
37                                 }
38                                 dataLength=0;
39                             }     
40                         }
原文地址:https://www.cnblogs.com/GoAhead/p/3010561.html