嵌入式开发者社区
标题:
修改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