zbuf方案一:缺点直接拿结构体当缓冲区,达不到很好的速度

原创 2012年03月30日 18:34:58

struct DataToSend framedate1;

framedate1.FrameHead[0]=0xAA;
framedate1.FrameHead[1]=0x55;
framedate1.FrameTail[0]=0xA5;
framedate1.FrameTail[1]=0x5A;
//framedate1.FrameLength=161;  暂时未用到不定数据帧
framedate1.FrameType=0xA1;
framedate1.DataType=0xD1;

for (int j=0;j<20;j++)
{
framedate1.SendData[j]=Dealdata.waveBuff[j+i*20];
cout<<" sin  = "<<framedate1.SendData[j]<<"| ";
}


ZBUF_ID zbuf_send;
if((zbuf_send=zbufCreate ())==NULL)
{printf("zbuf_send Creat is Error!\n");}
zbufInsertBuf(zbuf_send,NULL,0,(char *)&framedate1,166,NULL,0);

//if (send(sFdtemp,(char *)&framedate1,166,0)==ERROR)
if( zbufSockSend(sFdtemp,zbuf_send,166,0)==NULL)
{
logMsg("netDATASend: unable to send data !\n",0,0,0,0,0,0);
semGive(semNetCltLink);
break;
}



PS:

在此情况下数据产生畸变。加上zbufClose也是。

如果语句ZBUF_ID zbuf_send;
if((zbuf_send=zbufCreate ())==NULL)
{printf("zbuf_send Creat is Error!\n");}

放在循环之外则只能收到一个循环的数据。

相关文章推荐

linux下结构体直接赋值

  • 2014年03月29日 14:22
  • 5KB
  • 下载

hdu 4020 很好的set和结构体的结合运用 很帅的一个题啊

Ads Proposal Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others) ...

FILE结构体(文件描述符及缓冲区)

FILE结构体 C语言的stdio.h头文件中,定义了用于文件操作的结构体FILE。这样,我们通过fopen返回一个文件指针(指向FILE结构体的指针)来进行文件操作。可以在stdio.h(位于vi...
  • centor
  • centor
  • 2017年05月13日 21:51
  • 153

129 C语言FILE结构体以及缓冲区深入探讨

C学习网:链接->C学习网 C训练网:链接->C训练网 在C语言中,用一个指针变量指向一个文件,这个指针称为文件指针。通过文件指针就可对它所指的文件进行各种操作。 定义文件指针的一般形式...

Linux内核结构体--kfifo 环状缓冲区

1、前言   最近项目中用到一个环形缓冲区(ring buffer),代码是由linux内核的kfifo改过来的。缓冲区在文件系统中经常用到,通过缓冲区缓解cpu读写内存和读写磁盘的速度。例如一个进程...

C#类与结构体究竟谁快——各种函数调用模式速度评测

以前我一直有个疑惑——在C#中,究竟是类(class)比较快,还是结构体(struct)比较快? 当时没有深究。 最近我遇到一个难题,需要将一些运算大的指针操作代码给封装一下。原先为了性能,这些代...
  • zyl910
  • zyl910
  • 2011年09月19日 00:48
  • 6265

如何在C#中直接操作C++结构体

在C#中调用C++或系统DLL是比较常见的操作。    例如C++中定义的以下结构体:  struct RCEStruct {   int Event;      int Flag; ...

结构体存储文件 C 深入理解2 直接存储,有大端和端的问题。

结构体存储文件 C 深入理解2 直接存储,有大端和端的问题。...

send函数可以直接发送结构体吗?

网络通信编程中,常常用结构体对待发送的数据进行封装。比如, struct msg { charcmd;  char len;  int extraData[0]; }; cmd表示命令,远端会根据...

结构体如果没有重载比较运算符,不能直接进行比较

开始。 #include struct dt64bit { int m_date; int m_time; public: dt64bit() :m_date(0), m...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:zbuf方案一:缺点直接拿结构体当缓冲区,达不到很好的速度
举报原因:
原因补充:

(最多只允许输入30个字)