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

📄 hwsndmsg_old.pc

📁 linux下c 编写的 某项目代理服务端部分的代码。其中包括网络通信
💻 PC
字号:
#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 "../include/shmmsg.h"#define USRNAME "omcr"#define PASSWD "omcr"#define ORASID "csc" #include "../include/hw.h"#define SIZE 256 #define SIZE1 30void p_debug();void m_debug();void getsystime();int ReplaceChar();main(){  char buf[SIZE];  FILE *fp,*fp1;  int  len,count,i,n;  char *ptr;  char *desttmp;  char status[10],result[SIZE];	int y[10];  char jizhan[10];  char tmp0[SIZE1],tmp1[SIZE1],tmp2[SIZE1],tmp3[SIZE1],tmp4[SIZE1];   char tmp5[SIZE1],tmp6[SIZE1],tmp7[SIZE1],tmp8[SIZE1],tmp9[SIZE1];   char tmp10[SIZE1],tmp11[SIZE1],tmp12[SIZE1];  char tmp13[SIZE1],tmp14[SIZE1],tmp15[SIZE1];  char tmp16[SIZE1],tmp17[SIZE1],tmp18[SIZE1],tmp19[SIZE1];	int semid;        static char flag[1];        static char eg1[18],eg2[70],eg3[70],time[18],eg4[70],eg5[6];	char tmp[15];	char alarm_level_no[1],alarm_sort_no[1];	char alarm_site_name[31];	char alarm_time[19],alarm_name_no[2];	char icity_no[2],vcity_no[2],sz[2];	char alarm_queue[10];	int alarm_csn,leng;	char rtn[4];	  n=0;  memset(buf,0x0,SIZE);  memset(status,0x0,sizeof(status));  memset(result,0x0,SIZE);  memset(tmp0,0x0,SIZE1);  memset(tmp1,0x0,SIZE1);  memset(tmp2,0x0,SIZE1);  memset(tmp3,0x0,SIZE1);  memset(tmp4,0x0,SIZE1);  memset(tmp5,0x0,SIZE1);  memset(tmp6,0x0,SIZE1);  memset(tmp7,0x0,SIZE1);  memset(tmp8,0x0,SIZE1);  memset(tmp9,0x0,SIZE1);  memset(tmp10,0x0,SIZE1);  memset(tmp11,0x0,SIZE1);  memset(tmp12,0x0,SIZE1);  memset(tmp13,0x0,SIZE1);  memset(tmp14,0x0,SIZE1);  memset(tmp15,0x0,SIZE1);  memset(tmp16,0x0,SIZE1);  memset(tmp17,0x0,SIZE1);  memset(tmp18,0x0,SIZE1);  memset(tmp19,0x0,SIZE1);  memset(eg5,0x0,sizeof(eg5));  desttmp=(char *)malloc(sizeof(char)*3);	memset(alarm_site_name,0,31);	memset(alarm_time,0,19);	memset(alarm_name_no,0,2);    while(1)    {	if (fgets(buf,256,stdin)==NULL){		getsystime(time);		m_debug("%s fgets NULL data\n",time);		sleep(60);		if(n==4){		printf("n=%d\n",n);		n=0;		system("ksh /usr/csc/huawei/hw.sh");		/*sleep(160);*//*edited by w 020106*/		printf("wait!\n");		}		n++;  		continue;		}	else{	if (strstr(buf,"+++")!=NULL){	sscanf(buf,"%s%s%s%s",tmp0,tmp1,tmp2,tmp3);	strcpy(result,tmp2);	strcat(result,tmp3);	strcat(result,"|");	count=1;	}	if ((count==1)&& (strstr(buf,"ALARM")!=NULL)){	sscanf(buf,"%s%s%s%s%s",tmp4,tmp5,tmp6,tmp7,tmp8);  	memset(tmp4,0x0,SIZE1);	for(i=0;i<HWCOUNT;i++){	if ( strncmp(tmp8,alarm_name[i].gjdm,4)==0){  	memset(tmp6,0x0,SIZE1);	sprintf(tmp6,"%s|%s|",alarm_name[i].status,alarm_name[i].type);	sprintf(tmp4,"%s|%s",tmp5,tmp6);	strcat(result,tmp4);	count=2;		}	    }	}	if ((count==2)&&(strstr(buf,"对象编号")!=NULL)){	sscanf(buf,"%s%s%s",tmp9,tmp10,tmp11);        strcpy(jizhan,tmp11);	count=3;	}	if ((count==3)&&(strstr(buf,"模块编号")!=NULL)){	sscanf(buf,"%s%s%s",tmp12,tmp13,tmp14);        strcat(jizhan,tmp14);	count=4;	}	if ((count==4)&&(strstr(buf,"定位信息")!=NULL)){	ReplaceChar(buf,strlen(buf));	sscanf(buf,"%s%s%s%s%s",tmp15,tmp16,tmp17,tmp18,tmp19);	strcat(jizhan,tmp19);	strcat(result,jizhan);	p_debug("result=[%s]\n",result);		semid=opensem(SEMKEY1);		if (semid<0){		syslog("get semaphar err",__FILE__,__LINE__);		exit(-3);		}		sem_open(semid);		ReplaceChar(result,strlen(result));                memset(eg5,0x0,7);		sscanf(result,"%s%s%s%s%s",eg1,eg2,eg3,eg4,eg5);		s_debug("eg5=[%s]",eg5);  	        EXEC SQL CONNECT :USRNAME identified by :PASSWD;		if (sqlca.sqlcode!=0){			s_debug("sqlcode =[%d]",sqlca.sqlcode);		}		else{		s_debug("------------  hwdata.c begin  ------------\n");			trimstrcpy(alarm_site_name,eg5,strlen(eg5));			s_debug("connect success=[%d]\n",sqlca.sqlcode);		if (strncmp(eg5,"294",3)==0){ 	            strcpy(icity_no,"49");		}/* 12-10 add*/		  else	            if (strncmp(eg5,"2",1)==0){        		   strcpy(icity_no,"52");                		}		trimstrcpy(vcity_no,icity_no,strlen(icity_no));			EXEC SQL EXECUTE		begin		hwei2(:alarm_site_name,'04',:vcity_no);		end;		end-exec;		if (sqlca.sqlcode==0){			EXEC SQL COMMIT;			trimstrcpy(alarm_name_no,eg4,strlen(eg4));			s_debug("alarm_name_no=[%s]\n",alarm_name_no);			trimstrcpy(flag,eg3,strlen(eg3));			s_debug("flag=[%s]\n",flag);			s_debug("alarm_site_name=[%s]\n",alarm_site_name);			trimstrcpy(alarm_time,eg1,strlen(eg1));			s_debug("alarm_time=[%s]\n", alarm_time);			trimstrcpy(alarm_queue,eg2,strlen(eg2));			s_debug("alarm_queu=[%s]\n", alarm_queue);		    EXEC SQL EXECUTE		    begin		    hwei(:flag,:alarm_name_no,:alarm_time,:alarm_site_name,\                        :alarm_queue,:rtn);		    end;		    end-exec;		    if (strncmp(rtn,"0000",4)==0){		       s_debug("procdure succ\n");		    }		    if (strncmp(rtn,"1000",4)==0){		       s_debug("record exist\n");		    }		    if (strncmp(rtn,"3000",4)==0){		       s_debug("norecore ist\n");		    }		    if (strncmp(rtn,"4000",4)==0){		       s_debug("many record \n");		    }		    if (strncmp(rtn,"2000",4)==0){		       s_debug("procdure fail\n");		    }		  	 if (sqlca.sqlcode==0){			EXEC SQL COMMIT RELEASE;			}			else{			s_debug("hwei proc->sqlcode=[%d]\n",sqlca.sqlcode);			EXEC SQL ROLLBACK RELEASE;			}	s_debug("------------  hwdata.c   end   ------------\n\n\n\n\n");	      }		else		s_debug("hwei2 proc->sqlcode=[%d]\n",sqlca.sqlcode);		}		/*semid=opensem(SEMKEY1);		if (semid<0){		syslog("get semaphar err",__FILE__,__LINE__);		exit(-3);		}*/		sem_close(semid);	}      }	memset(alarm_site_name,0,31);	memset(alarm_time,0,19);	memset(alarm_name_no,0,2);   	memset(buf,0x0,SIZE);   	memset(eg1,0,SIZE);   	memset(eg2,0,SIZE);   	memset(eg3,0,SIZE);   	memset(eg4,0,SIZE);   	memset(eg5,0,SIZE);    }}#define	TEMPDIR	"/usr/csc/print"#define TRUE	1void p_debug(va_alist)va_dcl{	va_list args;	char    *fmt;	FILE    *fp;	char filename[SIZE1], *ttyname(), *tname;	tname = ttyname(TRUE);	sprintf(filename, "%s/sndapp", TEMPDIR);	fp = fopen(filename, "a");	va_start(args);	fmt = va_arg(args, char *);	vfprintf(fp, fmt, args);	va_end(args);	fclose(fp);}void m_debug(va_alist)va_dcl{	va_list args;	char 	*fmt;	FILE	*fp;	char filename[SIZE1],*ttyname(),*tname;	tname=ttyname(TRUE);	sprintf(filename,"%s/snderr",TEMPDIR);	fp=fopen(filename,"a");	va_start(args);	fmt=va_arg(args,char *);	vfprintf(fp,fmt,args);	va_end(args);	fclose(fp);}void getsystime(char *tmp){	time_t	tv;		tv=time((time_t *) 0);		strcpy(tmp,ctime(&tv)+4);	tmp[20]=0;}	  int ReplaceChar(char *str,int len)  {     int i = 0;      while (i < len) {      start: if (str[i] == '|') {           str[i] = ' ';	   i++;	   goto start;        }	if (str[i] == '\n') {           str[i] = ' ';	   i++;	   goto start;        }	if (str[i] == '=') {           str[i] = ' ';	   i++;	   goto start;        }	if (str[i] == ',') {           str[i] = ' ';	   i++;	   goto start;        }	i++;      }      return(0);   }

⌨️ 快捷键说明

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