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

📄 rspgprs.c

📁 C语言源代码及相关资料
💻 C
字号:
#ifdef	_CVI_#include <ansi_c.h>#endif#include "stdlib.h"#include "string.h"#include "rspindparser.h"#include "rspindhandler.h"#include "cq.h"#include "gprs_a.h"unsignedchar *	getfield ( unsigned char * p, unsigned char * pfield, int nbytes );typedef	struct {		int			socket;		int			protocol;		int			recvbufsize;		int			sendbufsize;		int			bytes;}		t_aipw;typedef	struct {		int			socket;		int			protocol;		int			recvbufsize;		int			sendbufsize;		int			bytes;		unsigned		char *		pdata;}		t_aipr;		t_aipw	aipw = {				-1,				0,				0,				0,				0};#define	SIZE_BUFFER					32t_aipr	aipr = {				-1,				0,				0,				0,				0,				0};/*+AIPW: 1,0,7300,5840,3OK+AIPRTCP:1,0,7300,5840,3,"414243"*/unsignedchar	szField[ SIZE_BUFFER + 1 ];staticvoid	RspInd_AIPW ( unsigned char * pRspInd, unsigned char * pField, int nSize ){unsignedchar *	p;t_aipw *	pWt = &aipw;	p = pRspInd + strlen ( "+AIPW: " );	pWt->socket      = -1;	pWt->protocol    = 0;	pWt->recvbufsize = 0;	pWt->sendbufsize = 0;	pWt->bytes       = 0;	if (!p || !*p ) return;	p = getfield ( p, pField, nSize );	if ( pField[ 0 ] )	{		pWt->socket = atoi ( (char *)pField );	}	if (!p || !*p ) return;	p = getfield ( p, pField, nSize );	if ( pField[ 0 ] )	{		pWt->protocol = atoi ( (char *)pField );	}	if (!p || !*p ) return;	p = getfield ( p, pField, nSize );	if ( pField[ 0 ] )	{		pWt->recvbufsize = atoi ( (char *)pField );	}	if (!p || !*p ) return;	p = getfield ( p, pField, nSize );	if ( pField[ 0 ] )	{		pWt->sendbufsize = atoi ( (char *)pField );	}	if (!p || !*p ) return;	p = getfield ( p, pField, nSize );	if ( pField[ 0 ] )	{		pWt->bytes = atoi ( (char *)pField );	}}void	logfile ( char * plogfile, unsigned char * p, int size );int		ftp_log ( unsigned char * p, int nbytes, int seek );staticvoid	RspInd_AIPR ( unsigned char * pRspInd, unsigned char * pField, int nSize ){unsignedchar *	p;t_aipr *	pRd = &aipr;#ifdef	_CVI_	logfile ( "aipr.log", pRspInd, strlen ( pRspInd ) );	logfile ( "aipr.log", "\n", 1 );#endif//	p = pRspInd + strlen ( "+AIPRxxx:" );	p = (unsigned char *)strchr ( (char *)pRspInd, ':' );	if ( p == 0 ) return;	p++;	pRd->socket      = -1;	pRd->protocol    = 0;	pRd->recvbufsize = 0;	pRd->sendbufsize = 0;	pRd->bytes       = 0;	pRd->pdata       = 0;	if ( pRd->pdata ) pRd->pdata[ 0 ]  = 0;	if (!p || !*p ) return;	p = getfield ( p, pField, nSize );	if ( pField[ 0 ] )	{		pRd->socket = atoi ( (char *)pField );	}	if (!p || !*p ) return;	p = getfield ( p, pField, nSize );	if ( pField[ 0 ] )	{		pRd->protocol = atoi ( (char *)pField );	}	if (!p || !*p ) return;	p = getfield ( p, pField, nSize );	if ( pField[ 0 ] )	{		pRd->recvbufsize = atoi ( (char *)pField );	}	if (!p || !*p ) return;	p = getfield ( p, pField, nSize );	if ( pField[ 0 ] )	{		pRd->sendbufsize = atoi ( (char *)pField );	}	if (!p || !*p ) return;	p = getfield ( p, pField, nSize );	if ( pField[ 0 ] )	{		pRd->bytes = atoi ( (char *)pField );	}	if (!p || !*p ) return;#ifdef	_DBG_	ftp_log ( (unsigned char *)"\r\nIP DATA :\r\n", strlen ( "\r\nIP DATA :\r\n" ), -1 );	ftp_log ( (unsigned char *)p, (pRd->bytes << 1) + 2, -1 );	ftp_log ( (unsigned char *)"\r\n", 2, -1 );#endif	if ( *p == '"' ) p++;	pRd->pdata = p;#if	0	if ( *p == '"' ) p++;	else             return;	pRd->pdata = p;	if ( pRd->pdata[ pRd->bytes << 1 ] != '"' ) return;#endif	socket_recv2buffer ( pRd->socket, pRd->pdata, pRd->bytes << 1 );#if	0	p = getfield ( p, pField, nSize );	if ( pField[ 0 ] )	{		strcpy ( pRd->pdata, (char *)pField );	}#endif}staticvoid	RspInd_AIPRIPI ( unsigned char * pRspInd, unsigned char * pField, int nSize ){unsignedchar *	p;t_aipr *	pRd = &aipr;	p = pRspInd + strlen ( "+AIPRIPI:" );	pRd->socket      = -1;	pRd->protocol    = 0;	pRd->recvbufsize = 0;	pRd->sendbufsize = 0;	pRd->bytes       = 0;	pRd->pdata       = 0;	if ( pRd->pdata ) pRd->pdata[ 0 ]  = 0;	if (!p || !*p ) return;	p = getfield ( p, pField, nSize );	if ( pField[ 0 ] )	{		pRd->socket = atoi ( (char *)pField );	}#if	0	if (!p || !*p ) return;	p = getfield ( p, pField, nSize );	if ( pField[ 0 ] )	{		pRd->protocol = atoi ( (char *)pField );	}#endif	if ( pRd->socket > 0 )	{		socket_ind ( pRd->socket );	}}int		mystrncmpnocase ( char * p, char * q, int n );int		mystrcmpnocase  ( char * p, char * q );int		Handler_RSP_IND_AIP ( t_rsp_ind_parser * p ){#ifdef	_DBG_//		echo_rsp ( (unsigned char *)"H+AIP\r\n" );#endif	if (!p->RspData ) return 1;	else if ( mystrncmpnocase ( (char *)p->RspData, "+AIPW: ", strlen ( "+AIPW: " ) ) == 0 )	{#ifdef	_DBG_//		echo_rsp ( (unsigned char *)"H+AIPW\r\n" );#endif		RspInd_AIPW ( p->RspData, szField, SIZE_BUFFER );#ifndef	_DBG_//		return 0;#endif	}	else if ( mystrncmpnocase ( (char *)p->RspData, "+AIPRIPI:", strlen ( "+AIPRIPI:" ) ) == 0 )	{#ifdef	_DBG_//		echo_rsp ( (unsigned char *)"H+AIPRIPI\r\n" );#endif		RspInd_AIPRIPI ( p->RspData, szField, SIZE_BUFFER );#ifndef	_DBG_//		return 0;#endif	}	else if ( mystrncmpnocase ( (char *)p->RspData, "+AIPR", strlen ( "+AIPR" ) ) == 0 )	{#ifdef	_DBG_//		echo_rsp ( (unsigned char *)"H+AIPR\r\n" );#endif		RspInd_AIPR ( p->RspData, szField, SIZE_BUFFER );#ifndef	_DBG_//		return 0;#endif	}	return (1==1);}

⌨️ 快捷键说明

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