⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myfunc01.cpp

📁 网络编程
💻 CPP
字号:
#include "StdAfx.h"

int igLogTimes=0;
int igConnectTimes=0;
int igRecvBytes=0;
int igSendBytes=0;
char agCurDir[1024];
 
time_t	timeBegin;
/***  功能	取系统完整时间,格式YYYYMMDD HH:MM:SS:MMM*/
int GetDealTime( char * aOut)
{
    struct	tm * now;
    time_t	now_sec;
    char	tmstr[150];
    int		offset;
    struct timeb tp;

    time(&now_sec);
    now = localtime(&now_sec); 
    offset = 1900;
    ftime(&tp);

    sprintf( tmstr, "<span style=\"background-color: #C0C0C0\">%04d-%02d-%02d %02d:%02d:%02d:%03</span>",
	     now->tm_year+offset, now->tm_mon+1, now->tm_mday,
	     now->tm_hour, now->tm_min, now->tm_sec,tp.millitm);
    strcpy(aOut,tmstr);
	return 0;
}
/**************************************************************
**  函数名	FileLog
**  功能	记跟踪日志:打印指定信息
**  作者	tcpip_2005@126.com(动力通信工作组)
**  全局变量	agLogFile
**  环境变量
**  输入参数	frm, :用法格式同printf
**  输出参数	无 
**  返回值	整型
		-1:操作日志文件出错.
		0:成功
**************************************************************/
int FileLog( char *fmt, ...)
{
    FILE     *fp;
    char     buf[110000], fname1[300];
    char     buf1[300], fname2[300];

    struct stat  sBuf;	
    va_list  ap;

    if ( *fmt )
    {
		va_start(ap,fmt);
		vsprintf(buf, fmt, ap);
    	va_end(ap);
    }

    sprintf(fname1,"SimMsn_0.htm");
    sprintf(fname2,"SimMsn_1.htm");

    stat(fname1,&sBuf);	
    if( (sBuf.st_size >= 2000000 )|| (igLogTimes==0))
    {
			rename(fname1,fname2);
			if (( fp = fopen(fname1,"w")) == NULL)  return(-1);
			fprintf( fp,"<html><head><meta http-equiv=\"Content-Language\" content=\"zh-cn\">");
			fprintf( fp,"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">");
			fprintf( fp,"<title>LogPages</title></head><body>");
			fprintf( fp,"<p><font face=\"宋体\" size=\"2\">" );
			fclose( fp );
			time(&timeBegin);
    }		
	
    if (( fp = fopen(fname1,"a+")) == NULL)  return(-1);
    GetDealTime( buf1 );
    fprintf( fp,"%s [%x] : %s<br>\n",buf1,_getpid(),buf );
    fclose( fp );
	igLogTimes++;
    return  0;
}
int DataLog( char *fmt, ...)
{
    FILE     *fp;
    char     buf[110000], fname1[300];
  
    va_list  ap;

    if ( *fmt )
    {
		va_start(ap,fmt);
		vsprintf(buf, fmt, ap);
    	va_end(ap);
    }

    sprintf(fname1,"SimMsn_0.htm");
    

    if (( fp = fopen(fname1,"a+")) == NULL)  return(-1);
   
    fprintf( fp,"%s",buf );
    fclose( fp );

    return  0;
}

int EnCodeFileLog( int iInProxyID, char *aInCS, char  *aInBuf, int iLen )
{
    FILE     *fp;
    char     aObuf[10010], fname1[300];
    char     buf1[300], fname2[300];
	struct stat  sBuf;	

	EnCodeBuf( aInBuf,iLen , aObuf , 10000);

    sprintf(fname1,"SimMsn_0_%d.htm",iInProxyID);
    sprintf(fname2,"SimMsn_1_%d.htm",iInProxyID);

    stat(fname1,&sBuf);	
    if( sBuf.st_size >= 2000000 )
    {
	rename(fname1,fname2);
    }		

    if (( fp = fopen(fname1,"a+")) == NULL)  return(-1);
    GetDealTime( buf1 );
    fprintf( fp,"%s [%x] : %s %04d [%s]\n",buf1,_getpid(),aInCS,iLen,aObuf );
    fclose( fp );

    return  0;
}

int EnCodeBuf( char *aInBuf, int iLen , char *aOut , int iMaxLen)
{
	int i,k;
	unsigned char cTmp1;

	k = 0;
    for( i =0 ; i< iLen; i ++ )
	{
		if( iMaxLen < k+5 ) return -1;

		if( aInBuf[i] == ' ' )
		{
		 	aOut[k]= '+';
			k++;
		}
		else if( aInBuf[i]>32 && aInBuf[i]<127 && aInBuf[i]!=37 )
		{
		 	aOut[k]= aInBuf[i];
			k++;
		}
		else
		{
			aOut[k] = 37 ;
			cTmp1=(unsigned char)aInBuf[i];
			sprintf( aOut + k +1, "%02x", cTmp1 );
			k=k+3;
		}
	}	
	aOut[k] = 0x00;
	return k;

}

int UnCodeValue(char *aValue)
{
	int i= 0 , j=0 , k=0 ,ilLen;
	char alBuf[1024], alHex[3];

	ilLen = strlen( aValue );
	memset(alBuf, 0x00, sizeof(alBuf));	
	for(i = 0 ; i < ilLen ; i ++ )
	{
		if( aValue[i] == '+' )
		{
			alBuf[k] = ' ';
		}
		else if( aValue[i] != '%' )
		{
			alBuf[k] = aValue[i];
		}
		else
		{
			memset(alHex, 0x00, sizeof(alHex));	
			memcpy(alHex , aValue + i +1 , 2 );
			sscanf( alHex , "%x", &j );
			alBuf[k] = j;
			i = i + 2;
		}
		k ++ ;
	}
	memset(aValue , 0x00 , ilLen ) ;
	memcpy(aValue , alBuf , k );
	return k;
}

int DeCodeBuf(char *aValue,int iInLen)
{
	int i= 0 , j=0 , k=0 ,ilLen;
	char alBuf[1024], alHex[3];

	ilLen = iInLen;
	memset(alBuf, 0x00, sizeof(alBuf));	
	for(i = 0 ; i < ilLen ; i ++ )
	{
		if( aValue[i] == '+' )
		{
			alBuf[k] = ' ';
		}
		else if( aValue[i] != '%' )
		{
			alBuf[k] = aValue[i];
		}
		else
		{
			memset(alHex, 0x00, sizeof(alHex));	
			memcpy(alHex , aValue + i +1 , 2 );
			sscanf( alHex , "%x", &j );
			alBuf[k] = j;
			i = i + 2;
		}
		k ++ ;
	}
	memset(aValue , 0x00 , ilLen ) ;
	memcpy(aValue , alBuf , k );
	return k;
}


int ReadFileOneLine( char * aFile ,  int iInLineNum ,char *aLine)
{
	 char  alBuf[BUF_SIZE];
	 int   i;
	 FILE  *fp;

  
	 fp=fopen(aFile,"r");
	 if (fp == NULL)
	 {
	 return - 404 ;
	 }
	 i=0;
	 memset(alBuf,0x00,sizeof(alBuf));
	 while( fgets(alBuf,BUF_SIZE-1,fp) != NULL )
	 {
			i++;
			if( i==iInLineNum )
			{
				  memcpy(aLine , alBuf, strlen(alBuf));
				  fclose(fp);
				  return strlen(alBuf);
			}
 
			memset(alBuf,0x00,sizeof(alBuf));
	 }
     fclose(fp);
     return -100;
}

int GetValueByName( unsigned char *aInIE_DATA,int iInLen,char *FldName ,char *FldValue)
{
	int ilLen ,  i = 0 , ilFieldID = 0;
	int ilFldName1 , ilFldValue1 , ilField_DATA_Len = 0;
	int ilFldName2 , ilFldValue2 ;
	char alBuf[81920], alName[100],alValue[8192];

	memset(alBuf , 0x00 ,sizeof( alBuf));
	memset(alName , 0x00 ,sizeof( alName));
	memset(alValue , 0x00 ,sizeof( alValue));
	//ilLen = strlen( (char *)aInIE_DATA );
	memcpy(alBuf, aInIE_DATA, iInLen );
	ilFldName1 = 0 ;
	ilFldName2 = 0 ;
	ilFldValue1 = 0 ;
	ilFldValue2 = 0 ;
	ilLen = iInLen;
	//FileLog("GetValueByName = [%s], %d", alBuf ,ilLen);
	for( i = 0 ; i<= ilLen ; i++ )
	{
		if( alBuf[i] == 0x3d )
		{
			memset(alName , 0x00 ,sizeof( alName));
			memcpy(alName,alBuf+ilFldName1, i-ilFldName1);
			//FileLog("Find = FldName[%s],%d",alName,i); 
			ilFldValue1 = i + 1 ;
		}
		else if( (alBuf[i] == 0x26) || (i == ilLen ))
		{
			memset(alValue , 0x00 ,sizeof( alValue));
			memcpy(alValue,alBuf+ilFldValue1,i-ilFldValue1);
			//FileLog("Find=FldValue[%s],%d",alValue,i); 
			ilFldName1 = i + 1 ;

			ilFieldID ++ ;

			if( strcmp( alName , FldName ) !=0 ) continue ;
			UnCodeValue( alValue ) ;
			FileLog("Find! Name:[%s],UnCodeValue:[%s] ",alName,alValue);
			memcpy(FldValue, alValue , strlen(alValue));
			FldValue[ strlen(alValue) ] = 0x00;
			return 0 ;
		}
	}
	return  - 100 ;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -