📄 ftp_data.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 + -