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

📄 atdata.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 "scott"# define PASSWD "tiger"# define ORASID "omcr" int ReplaceChar(char *buf,int len);main(int argc,char* argv[]){	int semid,len;        char flag[2];        char eg0[16],eg1[16],eg2[10],eg3[40],eg4[4],eg5[50];        char eg6[20],eg7[4];	char buf[256];        char tmp[16];	char alarm_site_name[41];	char alarm_time[19],alarm_name_no[4];	char icity_no[4],vcity_no[3],sz[2];        char alarm_status_no[2];	time_t start,finish;        double elapsed_time;        int tag=0;        int wcode=0;        int i=0;        char buff[100];        char buff1[15];        char vsite_no[4];        int vno;	memset(buf,0,256);        memset(buff,0,strlen(buff));        memset(buff1,0,strlen(buff1));	memset(alarm_site_name,0,41);	memset(alarm_time,0,19);	/*memset(alarm_name_no,0,2);*/        memset(vcity_no,0x0,sizeof(vcity_no));	memset(eg0,0,16);	memset(eg1,0,14);	memset(eg2,0,10);	memset(eg3,0,40);	memset(eg4,0,4);	memset(eg5,0,50);	memset(eg6,0,20);	memset(eg7,0,2);	/*memset(flag,0,sizeof(flag));*/	time(&start);	time(&finish);	if(comrcv(argv[1],buf)<0){        	v_debug("rcv alct data fail");	  	s_debug("alct buf=[%s]\n",buf);        }        else        {        	EXEC SQL CONNECT :USRNAME identified by :PASSWD  USING :ORASID;                if (sqlca.sqlcode!=0)                	s_debug("connect fall sqlcode =[%d]\n",sqlca.sqlcode);               	else                {                   	s_debug("connect success=[%d]\n",sqlca.sqlcode);                        len=strlen(buf);                	s_debug("\nGet message len=%d",len);                	if(len<30)                	{                   		s_debug("\nGet Back buf=%s",buf);                     		sscanf(buf,"%s%s%s",tmp,eg1,flag);                     		EXEC SQL EXECUTE                     		begin                         		mtll2_back(:eg1,:flag);                     		end;                     		end-exec;                     		if (sqlca.sqlcode==0)                         		EXEC SQL COMMIT;                   	  	else                     		{                         		s_debug("\nalct2_back sqlca.sqlcode=%d\n",sqlca.sqlcode);                          		EXEC SQL ROLLBACK;                     		}                	}	                	else                	{	        		s_debug("\n------------   atdata.pc begin  ------------\n");	       			ReplaceChar(buf,strlen(buf));                		s_debug("\nbuf=%s",buf);				sscanf(buf,"%s%s%s%s%s%s",eg6,eg0,eg1,eg2,eg3,eg4);					if(strlen(eg1)==1){		       			strcpy(eg7,"0");		       			strcat(eg7,eg1);				}		        		else		       			strcpy(eg7,eg1);				if(strncmp(eg7,"13",2)==0)					strcpy(eg7,"02");				if(strncmp(eg7,"14",2)==0)		       			strcpy(eg7,"11");		       	     	        	if (strncmp(eg2,"linfen",6)==0) 		       			strcpy(icity_no,"57");		       		if (strncmp(eg2,"lvliang",7)==0) 		   			strcpy(icity_no,"58");				if (strncmp(eg2,"jinzhong",8)==0) 		   			strcpy(icity_no,"54");				if (strncmp(eg2,"xinzhou",7)==0) 		   			strcpy(icity_no,"50");				if (strncmp(eg2,"yuncheng",8)==0) 		   			strcpy(icity_no,"59");				if (strncmp(eg2,"jincheng",8)==0) 		   			strcpy(icity_no,"56");				if (strncmp(eg2,"changzhi",8)==0) 		   			strcpy(icity_no,"55");				trimstrcpy(vcity_no,icity_no,strlen(icity_no));	                         				if(strncmp(eg4,"0",1)==0)					strcpy(eg4,"1");				else 					strcpy(eg4,"2");				trimstrcpy(alarm_status_no,eg4,2);	       	 		trimstrcpy(alarm_site_name,eg3,strlen(eg3));        			trimstrcpy(alarm_name_no,eg7,strlen(eg7));				trimstrcpy(alarm_time,eg0,strlen(eg0));                        	#ifdef TEST				s_debug("\nIn data alarm_status_no=[%s]",alarm_status_no);				s_debug("\nIn data  city_no=[%s]",vcity_no);				s_debug("\nalarm_site_name=[%s]\n",alarm_site_name);				s_debug("\nalarm_site_name_no=[%s]\n",alarm_name_no);				s_debug("alarm_time=[%s]\n",alarm_time);                 	       	#endif				EXEC SQL EXECUTE				begin                                      alct2('03',:alarm_site_name,:vcity_no,:tag,:vno);				end;		 		end-exec;				if (sqlca.sqlcode==0){					EXEC SQL COMMIT;                                	#ifdef TEST				        s_debug("\ndata tag=%d",tag);                	                #endif                                        if(tag>0)                                        {  		        	        	if(tag==2)                           				strcpy(buff1,"07011101410011");                  		      		else                                 	        	strcpy(buff1,"08011101410011");                                                             	  			sprintf(buff,"%s %s %s %d %s %s %s",buff1,alarm_status_no,vcity_no,vno,alarm_time,\                        	        	alarm_name_no,alarm_site_name);                                		#ifdef TEST                   	    			s_debug("\n After Sprintf buff=%s",buff);                        	        	#endif		                	       			wcode=Getsndport_snd(buff,buff1);                       				if(wcode<0)                            				s_debug("\nalct wcode=%d",wcode);                                      	}	                          		}					                                else 				{                                        s_debug("\n fall tag=%d",tag);                         		s_debug("\n sqlca.sqlcode=[%d]",sqlca.sqlcode);					EXEC SQL ROLLBACK;           			}             		}		}	}	        semid=opensem(SEMKEY1);        if (semid<0){        	syslog("get semaphar err",__FILE__,__LINE__);                exit(-3);        }        sem_close(semid);        time(&finish);        elapsed_time = difftime(finish, start);        /*s_debug("%s takes %6.2f seconds.\n\n",flag,elapsed_time);*/        s_debug("alct Program takes %f seconds\n\n",elapsed_time);        s_debug("\n------------ atdata.pc end  ------------\n");        exit(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] == '(') {           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+1]==':'){           str[i] = ' ';	   str[i+1]=' ';	   i++;	   goto start;        }	if (str[i] == ')') {           str[i] = ' ';	   i++;	   goto start;        }	i++;      }      return(0);   }

⌨️ 快捷键说明

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