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

📄 nokdata.pc

📁 linux下c 编写的 某项目代理服务端部分的代码。其中包括网络通信
💻 PC
📖 第 1 页 / 共 2 页
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <varargs.h>#include <unistd.h>#include <time.h>#include <sqlca.h>#include <malloc.h>#include "../include/shmmsg.h"#define USRNAME "scott"#define PASSWD "tiger"#define ORASID "omcr"#define WRITELEN  256EXEC SQL BEGIN DECLARE SECTION;       SQL_CURSOR out_fx_alarm;       SQL_CURSOR out_new_fx_alarm;       varchar    rtn[5];       varchar    rtn1[5];       varchar    site_number[11];EXEC SQL END DECLARE SECTION;struct comshm * GetShm();void Makepkt_snd(struct Pack_buffs *sphead);int MakePack(struct Pack_buffs *sphead ,struct pktstru * hed,struct Packet * opket);main(int argc,char**argv){	struct Pack_buffs * sp,*spt,*sphead,*spheader;    	sp=(struct Pack_buffs *)malloc(sizeof(struct Pack_buffs));     	sp->next=NULL;    	sphead=sp;    	struct pack_buffs s_pack_buffs;    	time_t start,finish;    	double elapsed_time;    	time(&start);    	time(&finish);    	memset(&s_pack_buffs,'\0',sizeof(struct pack_buffs));    	int tcancel=0,tnew=0;             char consec_nbr[11];        char int_id[11];        char alarm_status[2];        char alarm_time[15];        char cancel_time[15];        char alarm_number[3];        char severity[2];        char testname[21];        int length;    	EXEC SQL CONNECT :USRNAME identified by :PASSWD;    	if (sqlca.sqlcode!=0)          	s_debug("sqlcode =[%d]",sqlca.sqlcode);    	else{            	s_debug("\n------------  nokdata.pc begin  ------------\n");            	s_debug("connect success=[%d]\n",sqlca.sqlcode);            	EXEC SQL ALLOCATE :out_fx_alarm;            	EXEC SQL ALLOCATE :out_new_fx_alarm;            	EXEC SQL EXECUTE            	begin                	nokia_pack.nokia_get_notcancel(:out_fx_alarm,:rtn);                 	nokia_pack.nokia_get_new(:out_new_fx_alarm,:rtn1);            	end;            	end-exec;                #ifdef TEST                s_debug("rtn=%s",rtn.arr);                s_debug("rtn1=%s",rtn1.arr);                #endif             	if(sqlca.sqlcode==0){                        if(strncmp(rtn.arr,"1000",4)==0)                        {               	       		EXEC SQL WHENEVER NOTFOUND DO break;               			for (;;)               			{                    			EXEC SQL FETCH :out_fx_alarm                    			INTO :s_pack_buffs;                    			spt=(struct Pack_buffs *)malloc(sizeof(struct Pack_buffs));                     			spt->next=NULL;                    			sp->next=spt;                    			sp=spt;                    			memcpy(&(sp->pack_buffs),&s_pack_buffs,sizeof(struct pack_buffs));                                                                                   			s_debug("\n sp->pack_buffs.name=%s",sp->pack_buffs.name);                                	strcpy(consec_nbr,sp->pack_buffs.b_consec_nbr);                                	strcpy(alarm_status,sp->pack_buffs.b_alarm_status);                                	strcpy(cancel_time,sp->pack_buffs.b_cancel_time);                                	strcpy(testname,sp->pack_buffs.name);                                         s_debug("\ncancel_time=%s",cancel_time);                                	#ifdef TEST                                	s_debug("\n TESTname=%s",testname);                                	s_debug("\n Stelen TESTname=%d",strlen(testname));                                	#endif                               		EXEC SQL EXECUTE            	               		begin                	       			nokdata_cancel(:consec_nbr,:alarm_status,:cancel_time,:testname,:site_number);            				end;            				end-exec;                                        #ifdef TEST                                	s_debug("\nsite_number.arr=%s!",site_number.arr);                                        site_number.arr[10]='\0';                                	s_debug("\nsite_number.arr=%s!",site_number.arr);                                        #endif                                	length=strlen(site_number.arr);                                	site_number.arr[length-1]='\0';            	                	if(sqlca.sqlcode==0)                                	{                                        	strcpy(sp->pack_buffs.site_no,site_number.arr);                                        	s_debug("\n###Sp->pack_buffs.site_no=%s###",sp->pack_buffs.site_no);                                        	EXEC SQL COMMIT ;                                	}                                        else                                        {                	        	        s_debug("nok[%s]->sqlcode=[%d]\n",sqlca.sqlcode);                	                        EXEC SQL ROLLBACK ;                                        }                                                            			memset(&s_pack_buffs,'\0',sizeof(struct pack_buffs));               		  	}                     	}                        else                  		s_debug("\n THERE ARE NO  MESSAGES HAVE BEEN CANCELED!");                        if(strncmp(rtn1.arr,"1000",4)==0)                        {                		EXEC SQL WHENEVER NOTFOUND DO break;                		for(;;)                		{                    			EXEC SQL FETCH :out_new_fx_alarm                    			INTO :s_pack_buffs;                                        			spt=(struct Pack_buffs *)malloc(sizeof(struct Pack_buffs));                     			spt->next=NULL;                    			sp->next=spt;                    			sp=spt;                    			memcpy(&(sp->pack_buffs),&s_pack_buffs,sizeof(struct pack_buffs));                                	strcpy(consec_nbr,sp->pack_buffs.b_consec_nbr);                                        strcpy(alarm_number,sp->pack_buffs.b_alarm_number);                                	strcpy(int_id,sp->pack_buffs.b_int_id);                                	strcpy(alarm_status,sp->pack_buffs.b_alarm_status);                                	strcpy(alarm_time,sp->pack_buffs.b_alarm_time);                                	strcpy(cancel_time,sp->pack_buffs.b_cancel_time);                                	strcpy(severity,sp->pack_buffs.b_severity);                                	strcpy(testname,sp->pack_buffs.name);                                                             #ifdef TEST                                	s_debug("\n consec_nbr=%s",consec_nbr);                                	s_debug("\n int_id=%s",int_id);                                	s_debug("\n alarm_status##=%s",sp->pack_buffs.b_alarm_status);                                	s_debug("\n alarm_status=%s",alarm_status);                                	s_debug("\n alarm_time=%s",alarm_time);                                	s_debug("\n cancel_time=%s",cancel_time);                                	s_debug("\n alarm_number_###=%s",sp->pack_buffs.b_alarm_number);                                	s_debug("\n alarm_number=%s",alarm_number);                                	s_debug("\n severity=%s",severity);                                	s_debug("\n TESTname=%s",testname);                    			s_debug("\n p->pack_buffs.name=%s",sp->pack_buffs.name);                                	s_debug("\n Stelen TESTname=%d",strlen(testname));                                        #endif                               		EXEC SQL EXECUTE            	               		begin                	       			nokdata_new(:consec_nbr,:int_id,:alarm_status,:alarm_time,:cancel_time,\                                                	:alarm_number,:severity,:testname,:site_number);                	       			/*nokdata_new('0','0','0','20050706103430','0','0','0','zhongshu',:site_number);*/                                                            				end;            				end-exec;                                        #ifdef TEST                                	s_debug("\nsite_number.arr=%s!",site_number.arr);                                        #endif                                	length=strlen(site_number.arr);                                	site_number.arr[length-1]='\0';            	                	if(sqlca.sqlcode==0)                                	{                                        	strcpy(sp->pack_buffs.site_no,site_number.arr);                                        	s_debug("\n###Sp->pack_buffs.site_no=%s###",sp->pack_buffs.site_no);                                        	EXEC SQL COMMIT ;                                	}                                        else                                        {                	        	        s_debug("nok[%s]->sqlcode=[%d]\n",sqlca.sqlcode);                	                        EXEC SQL ROLLBACK ;                                        }                    			memset(&s_pack_buffs,'\0',sizeof(struct pack_buffs));                	   	}                        }                        else                		s_debug("\n THERE ARE NO NEW MESSAGES !");                         		EXEC SQL WHENEVER SQLERROR CONTINUE;            		EXEC SQL CLOSE :out_fx_alarm;            		EXEC SQL CLOSE :out_new_fx_alarm;                        EXEC SQL commit work release;                          		if(strncmp(rtn.arr,"1000",4)==0||strncmp(rtn1.arr,"1000",4)==0)                 		Makepkt_snd(sphead);            		else                		v_debug("\nDON'T SEND MESSAGES!");            		free(sphead);                }           	else{                	s_debug("nok[%s]->sqlcode=[%d]\n",sqlca.sqlcode);                	EXEC SQL ROLLBACK RELEASE;           	}         }            EXEC SQL commit work release;         s_debug("\n------------  nokdata.c end  ------------\n");         time(&finish);         elapsed_time = difftime(finish, start);         s_debug("\nNokia Program takes %6.2f seconds.\n", elapsed_time);}int MakePack(struct Pack_buffs *sphead ,struct pktstru *hed,struct Packet * opket){ 	int len=0;    	int leng=0;

⌨️ 快捷键说明

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