嵌入式开发者社区

标题: 修改TCP客户端程序,接收数据不正常 [打印本页]

作者: utada08    时间: 2018-1-18 16:44
标题: 修改TCP客户端程序,接收数据不正常
我修改了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);               
}







作者: 广州创龙廖工    时间: 2018-1-19 16:22
nin[attach]2974[/attach]您好,我们提供的例程,经过测试,配合上位机程序,都是可以正常发送和接收内容的。
作者: utada08    时间: 2018-1-21 15:50
广州创龙廖工 发表于 2018-1-19 16:22
nin您好,我们提供的例程,经过测试,配合上位机程序,都是可以正常发送和接收内容的。 ...

我不是在单讨论例程了,我是修改程序接收别的数据,数据量比较大,例程就是只适合一包一包的数据收发。
作者: 小晓筱伟    时间: 2018-1-23 15:04
我最近也在学习6748,能加个QQ我们交流下吗, 1455972026




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4