从网口接收采集卡的数据并保存成文件
我现在要做一个程序,从网口接收采集卡的数据并保存成文件,从接收网口300次数据(每次数据大约300个字),接收完300次数据后生成一个文件,然后接收另外的300个数据。采用UDP方式传输的,单次接收能得到数据,每次接收到的数据怎么和上次的数据怎么叠加,300次接收完成后,怎么处理?怎么保存成文件?,怎么重新开始接收?需不需要开一个进程来处理这个这个事件。谢谢,我是一个新手。
写了以下的程序,但是函数一运行就会一直生成文件,电脑死机。
#define COUNT 360
#define DATABYTES 314
#define MAXN 10
//////////////////////////////////
{
char buf[COUNT*DATABYTES];
//char *p;
int i,n,j;
char bytes[DATABYTES];
FILE *f;
//char fn[256];
CString str,str1;
str1 =NetData ;
str = bytes;
int w = strcmp(str,str1);
if (w=0)
{
}
else
{
for (j=0;j<314;j++)
{
bytes[j]=NetData1[j];
}
while (1)
{
n=0;
for (i=0;i<COUNT;i++)
{
//采集一次数据到bytes[]中
memcpy((void *)(buf+i*DATABYTES),(void *)bytes,DATABYTES);
}
n++;
if (n>MAXN) break;
m_SysTime = CTime::GetCurrentTime();
CString str1 = m_SysTime.Format("%Y")+m_SysTime.Format("%m")
+m_SysTime.Format("%d")+m_SysTime.Format("%H")
+m_SysTime.Format("%M")+m_SysTime.Format("%S");
CString strFileName ="Data\\"+str1+".STD";
//CFile file ;
f=fopen(strFileName,"wb");
if (NULL==f)
{
printf("无法创建文件%s!\n",strFileName);
}
fwrite(buf,DATABYTES,COUNT,f);
fclose(f);
}
}
}