|  | 
 
| 我修改了TCP客户端程序用来接收数据,但是每次的情况都是: 用recvnc函数  接收了数据头 和 1460个数据以后i = (int)recvnc(s, (void **)&pBuf, 0, &hBuffer);返回值i 一直都是 -1,这是为什么呢?
 
 //接收数据头
 if(head_flag==1)
 {
 i = (int)recvnc(s, (void **)&pBuf, 0, &hBuffer);
 if(i==132)//data head
 {
 if(i > 0)
 {
 for(iii=0;iii<32;iii++)
 {
 head[iii]=*pBuf;
 pBuf = pBuf+1;
 }
 write_data.sec  = head[3]<<24|head[2]<<16|head[1]<<8|head[0];
 write_data.min = head[7]<<24|head[6]<<16|head[5]<<8|head[4];
 write_data.hour  = head[11]<<24|head[10]<<16|head[9]<<8|head[8];
 write_data.day   = head[15]<<24|head[14]<<16|head[13]<<8|head[12];
 write_data.month  = head[19]<<24|head[18]<<16|head[17]<<8|head[16];
 write_data.year = head[23]<<24|head[22]<<16|head[21]<<8|head[20];
 
 pBuf = pBuf+12;
 
 for(iii=44;iii<68;iii++)
 {
 head[iii]=*pBuf;
 pBuf = pBuf+1;
 }
 recvncfree(hBuffer);
 head_flag = 0;
 }
 }
 
 }
 //接收数据
 for(ii=0;ii<6;ii++)
 {
 j = (int)recvnc(s, (void **)&pBuf, 0, &hBuffer);
 
 if(j > 0)
 {
 for(fff=0;fff<current_i;fff++)
 {
 g_buffer[ii].d_buffer[fff]=*pBuf;
 pBuf = pBuf+1;
 }
 }
 else
 {
 SD_write = 0;
 //break;
 }
 recvncfree(hBuffer);
 }
 
 
 
 
 
 
 
 | 
 |