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

📄 ftp_data.c

📁 网管程序.应用于网管主机之间按照规则交换网管数据
💻 C
字号:
/******************************************************************** * 文  件 : ftp_data.c                                              * * 作  者 : 夏颖昌                                                  * * 日  期 : 2005.01                                                 * * 描  述 : BI系统网管接口任务调度模块                              * ********************************************************************/#include	<sys/types.h>#include	<sys/ipc.h>#include	<sys/msg.h>#include	<fcntl.h>#include	<stdio.h>#include 	"binm_socket.h"#include 	"md5c_tjbi.h"#include 	"ipc_define.h"#ifndef         __DEBUG__#define         __DEBUG__#endifint main(){   FILE		*listFP;   char		strDataFileHeader[ 50 + 1 ];   char		strDataFile[ 50 + 1 ];   char		strMD5File[ 50 + 1 ];   char		strSequence[ 50 + 1 ];   char		strDateTime[ 20 + 1 ];	   char		strDay[ 9 + 1 ];   int		i, j, k;	//计数器   int		len;   char		strExe[ 250 + 1 ];   char		strDigestD[ 50 + 1 ];   char		strBase64D[ 50 + 1 ];   int		nLenBase64D;   char		strDigestM[ 50 + 1 ];	   char		strBase64M[ 50 + 1 ];   PNMP_DATA	g_pPnmpData;   char		g_strBuffer[ MAX_NUM + 1 ];		   MSG_BUFFER		msg_buffer;   MSG_BUFFER		msg_buffer2;   long			key;   int			msgid, msgid2;   char			*msgpath="/home/interface/nm_socket";   key = ftok( msgpath, 'a' );/*   if (( listFP = fopen( LIST_FILE, "r" )) == NULL )   {      printf( "Error: Cannot open file: %s\n", LIST_FILE );            return( -1 );   }*/   while( 1 )   {      //监控调度任务处理模块      msgid = msgget( key, IPC_CREAT|0777 );      memset( msg_buffer.data_buffer, 0x00, sizeof( msg_buffer.data_buffer ));      len = msgrcv( msgid, msg_buffer.data_buffer,                sizeof( msg_buffer.data_buffer ), 0, IPC_NOWAIT|MSG_NOERROR );      if ( len >= 0 )      {         printf( "msgrcv Buffer: [%s]\n", msg_buffer.data_buffer );#ifdef __DEBUG__   ftp_message_report( __FILE__, __LINE__, "msgrcv Buffer: [%s]\n", msg_buffer.data_buffer );#endif         ParserData( msg_buffer.data_buffer, &g_pPnmpData );         i = 0;/*         while ( !feof( listFP ))	//每次获取一个文件            i++;                  memset( strDataFileHeader, 0x00, sizeof( strDataFileHeader ));            fgets( strDataFileHeader, 6+1, listFP );	               if ( strcmp( strDataFileHeader, "" ) == 0 )               break;		            //文件命名: M0411820031124100000.avl            memset( strDataFile, 0x00, sizeof( strDataFile ));             sprintf(strDataFile, "%s%s000000.val", strDataFileHeader, strDay);            sprintf( strMD5File, "%s%s000000.md5", strDataFileHeader, strDay);		            //产生一个任务sequence            GetTime( strSequence );	*/		            j= 0;		//goto段MARK1:   //add for test   //memset( g_pPnmpData.pdURL, 0x00, sizeof( g_pPnmpData.pdURL ));   //strcpy( g_pPnmpData.pdURL, "ftp://bi:bi@10.142.8.121/report/04101/04101.20041229000000.req.dat" );   printf( "pdURL: [%s]\n", g_pPnmpData.pdURL );   printf( "pdMD5: [%s]\n", g_pPnmpData.pdMD5 );#ifdef __DEBUG__   ftp_message_report( __FILE__, __LINE__, "pdURL: [%s]\npdMD5: [%s]\n",g_pPnmpData.pdURL, g_pPnmpData.pdMD5 );#endif   //建立FBA连接,并下载数据,    sprintf( strExe, "/home/interface/nm_socket/bin/ftp_shell.sh %s", g_pPnmpData.pdURL);   if( system( strExe ) < 0 )   {      printf( "Error: Call the ftp_shell.sh error\n" );#ifdef __DEBUG__   ftp_message_report( __FILE__, __LINE__, "Error: Call the ftp_shell.sh error\n" );#endif      exit( -1 );   }      //SB端对下载的文件进行MD5校验   memset( strDataFile, 0x00, sizeof( strDataFile ));    memset( strMD5File, 0x00, sizeof( strMD5File ));   sprintf( strDataFile, "/data1/net/%s", g_pPnmpData.pdURL+38, 28 );   strcpy( strMD5File, g_pPnmpData.pdMD5 );   printf( "MD5***strDataFile: [%s]\nMD5***strMD5File: [%s]\n", strDataFile, strMD5File );#ifdef __DEBUG__   ftp_message_report( __FILE__, __LINE__, "MD5***strDataFile: [%s]\nMD5***strMD5File: [%s]\n", strDataFile, strMD5File );#endif   if( Get_FileMD( strDataFile, strDigestD ) == -1 )   {      printf( "Error: call Get_FileMD failed\n" );#ifdef __DEBUG__   ftp_message_report( __FILE__, __LINE__, "Error: call Get_FileMD failed\n" );#endif      //exit( -1 );   }   //to Base64   if( ToBase64( strDigestD, strBase64D, 16, &nLenBase64D ) == -1 )   {      printf( "Error: To Base64 error!\n" );#ifdef __DEBUG__   ftp_message_report( __FILE__, __LINE__, "Error: To Base64 error!\n" );#endif      //exit( -1 );   }/*   //把Base64读到缓冲区   if( ReadMD5File( strMD5File, strBase64M ) == -1 );   {      printf( "Error: call ReadMD5File failed\n");#ifdef __DEBUG__   ftp_message_report( __FILE__, __LINE__, "Error: call ReadMD5File failed\n");#endif      exit( -1 );   }*/   //比较   if( strcmp( strBase64D, strMD5File ) != 0 )   {			      printf( "MD5 ERROR!\n" );#ifdef __DEBUG__   ftp_message_report( __FILE__, __LINE__, "MD5 ERROR!\n" );#endif      //MSG发送      msgid2 = msgget( 0x888, IPC_CREAT|0666 );      memset( msg_buffer2.data_buffer, 0x00, sizeof( msg_buffer2.data_buffer ));      strcpy( msg_buffer2.data_buffer, "MD5Error" );      msgsnd( msgid2, msg_buffer2.data_buffer,                      sizeof( msg_buffer2.data_buffer ), IPC_NOWAIT );    }   else   {         printf( "FTP TASK SUCCESSFULLY\n" );#ifdef __DEBUG__   ftp_message_report( __FILE__, __LINE__, "FTP TASK SUCCESSFULLY\n" );#endif         //任务ftp成功MSG发送         msgid2 = msgget( 0x888, IPC_CREAT|0666 );         memset( msg_buffer2.data_buffer, 0x00, sizeof( msg_buffer2.data_buffer ));         strcpy( msg_buffer2.data_buffer, "FtpTaskSucc" );         msgsnd( msgid2, msg_buffer2.data_buffer,                         sizeof( msg_buffer2.data_buffer ), IPC_NOWAIT );    }      }            sleep( 1 );   }	   return( 0 );	}

⌨️ 快捷键说明

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