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

📄 alct_bak.c

📁 linux下c 编写的 某项目代理服务端部分的代码。其中包括网络通信
💻 C
字号:
#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 <signal.h>

#define SIZE 1024
#define SIZE1 50
void p_debug();
void m_debug();
void getsystime();
int ReplaceChar(char *,int);

main()
{
  char buf[SIZE];
  FILE *fp,*fp1;
  int  len,count,i;
  char *ptr;
  char *desttmp;
  char result[SIZE];
  char tmp0[SIZE1],tmp1[SIZE1],tmp2[SIZE1],tmp3[SIZE1],tmp4[SIZE1];
  char tmp5[SIZE1],tmp6[SIZE1],tmp7[SIZE1],tmp8[SIZE1],tmp9[SIZE1];
  char tmp2_0[SIZE1],tmp2_1[SIZE1],tmp2_2[SIZE1],tmp2_3[SIZE1];
  char tmp5_0[SIZE1],tmp5_1[SIZE1],tmp5_2[SIZE1];
  char tmp6_1_0[2],tmp6_1_1[SIZE1],tmp6_1_2[20];
  char tmp6_2_0[2],tmp6_2_1[20];
  char tmp7_0[SIZE1],tmp7_1[SIZE1];
  char tmp8_0[SIZE1],tmp8_1[SIZE1];
  char tmp9_0[SIZE1],tmp9_1[SIZE1];

        char alarm_site_name[31];
        char alarm_time[19];
	char alarm_name_no[3];
	char alarm_status_no[2];
	char city_name[20];
	
	memset(alarm_site_name,0x0,sizeof(alarm_site_name));
	memset(alarm_time,0x0,sizeof(alarm_time));
	memset(city_name,0x0,sizeof(city_name));
	memset(alarm_status_no,0x0,sizeof(alarm_status_no));
	memset(alarm_name_no,0x0,sizeof(alarm_name_no));
  memset(buf,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(tmp2_0,0x0,SIZE1);
  memset(tmp2_1,0x0,SIZE1);
  memset(tmp2_2,0x0,SIZE1);
  memset(tmp2_3,0x0,SIZE1);
  memset(tmp5_0,0x0,SIZE1);
  memset(tmp5_1,0x0,SIZE1);
  memset(tmp5_2,0x0,SIZE1);
  memset(tmp6_1_0,0x0,SIZE1);
  memset(tmp6_1_1,0x0,SIZE1);
  memset(tmp6_1_2,0x0,SIZE1);
  memset(tmp6_2_0,0x0,SIZE1);
  memset(tmp6_2_1,0x0,SIZE1);
  memset(tmp7_0,0x0,SIZE1);
  memset(tmp7_1,0x0,SIZE1);
  memset(tmp8_0,0x0,SIZE1);
  memset(tmp8_1,0x0,SIZE1);
  memset(tmp9_0,0x0,SIZE1);
  memset(tmp9_1,0x0,SIZE1);
  memset(result,0x0,SIZE);
  desttmp=(char *)malloc(sizeof(char)*3);

	if((fp=fopen("/home/omcr/collectmsg/alct.txt","r"))==NULL)
                m_debug("fopen File Error ");

while(1){
        if (fgets(buf,256,fp)==NULL){
                getsystime(time);
                m_debug("%s fgets NULL data\n",time);
                exit(0);
                }
        else{
        if ((strstr(buf,"Subject")!=NULL)&&(strstr(buf,"BTS-EXTERNAL")!=NULL)){

        sscanf(buf,"%s%s%s%s%s%s%s%s%s%s%s%s",tmp0,tmp1,tmp2,tmp3,tmp4,\
        tmp5,tmp6,tmp7,tmp8,tmp9);
                ReplaceChar(tmp2,strlen(tmp2));
                sscanf(tmp2,"%s%s%s%s",tmp2_0,tmp2_1,tmp2_2,tmp2_3);
                sscanf(tmp2,"%s%s%s%s",tmp2_0,alarm_time,tmp2_2,tmp2_3);
		if(strlen(tmp9)==0)
		{
			/*nine fields*/
			if(strlen(tmp8)==0)
			{
				count=1;
			}
			else
			{
				count=3;		
                			ReplaceChar(tmp6,strlen(tmp6));
                			sscanf(tmp6,"%s%s",tmp6_1_0,tmp6_1_1);
                			sscanf(tmp6,"%s%s",alarm_name_no,city_name);
                	ReplaceChar(tmp7,strlen(tmp7));
			sscanf(tmp7,"%s%s",tmp7_0,tmp7_1);
			sscanf(tmp7,"%s%s",alarm_site_name,tmp7_1);
			ReplaceChar(tmp8,strlen(tmp8));
			sscanf(tmp8,"%s",tmp8_1);
			sscanf(tmp8,"%s",alarm_status_no);
                	}
				
		}
		else if(strlen(tmp9)>3)
			{
				count=1;
			}
		else
		{
			/*ten fields*/
			count=2;
                		ReplaceChar(tmp7,strlen(tmp7));
                			sscanf(tmp7,"%s%s",tmp7_0,tmp7_1);
                			sscanf(tmp7,"%s%s",alarm_name_no,city_name);
                	ReplaceChar(tmp8,strlen(tmp8));
			sscanf(tmp8,"%s%s",tmp8_0,tmp8_1);
			sscanf(tmp8,"%s%s",alarm_site_name,tmp8_1);
			ReplaceChar(tmp9,strlen(tmp9));
			sscanf(tmp9,"%s",tmp9_1);
			sscanf(tmp9,"%s",alarm_status_no);
		}
		if(count==3)
		{
                //sprintf(result,"%s|%s|%s|%s|%s",alarm_time,alarm_name_no,city_name,alarm_site_name,alarm_status_no);
                sprintf(result,"%s|%s|%s|%s|%s",tmp2_1,tmp6_1_0,tmp6_1_1,tmp7_0,tmp8_1);
                p_debug("result=%s\n",result);
		count=0;
	memset(alarm_site_name,0x0,sizeof(alarm_site_name));
	memset(alarm_name_no,0x0,sizeof(alarm_name_no));
	memset(alarm_time,0x0,sizeof(alarm_time));
	memset(city_name,0x0,sizeof(city_name));
	memset(alarm_status_no,0x0,sizeof(alarm_status_no));
		}
		else if(count==2)
		{
                sprintf(result,"%s|%s|%s|%s|%s",tmp2_1,tmp7_0,tmp7_1,tmp8_0,tmp9_1);
                p_debug("result=%s\n",result);
	memset(alarm_site_name,0x0,sizeof(alarm_site_name));
	memset(alarm_name_no,0x0,sizeof(alarm_name_no));
	memset(alarm_time,0x0,sizeof(alarm_time));
	memset(city_name,0x0,sizeof(city_name));
	memset(alarm_status_no,0x0,sizeof(alarm_status_no));
		}
		else
		{
	memset(alarm_site_name,0x0,sizeof(alarm_site_name));
	memset(alarm_name_no,0x0,sizeof(alarm_name_no));
	memset(alarm_time,0x0,sizeof(alarm_time));
	memset(city_name,0x0,sizeof(city_name));
	memset(alarm_status_no,0x0,sizeof(alarm_status_no));
		}
        /*strheader(result);
        snddata(result);*/

        }
	else
	{
                m_debug("strstr NULL data\n");
                exit(0);
	}
        memset(buf,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(tmp2_0,0x0,SIZE1);
  memset(tmp2_1,0x0,SIZE1);
  memset(tmp2_2,0x0,SIZE1);
  memset(tmp2_3,0x0,SIZE1);
  memset(tmp5_0,0x0,SIZE1);
  memset(tmp5_1,0x0,SIZE1);
  memset(tmp5_2,0x0,SIZE1);
  memset(tmp6_1_0,0x0,SIZE1);
  memset(tmp6_1_1,0x0,SIZE1);
  memset(tmp6_1_2,0x0,SIZE1);
  memset(tmp6_2_0,0x0,SIZE1);
  memset(tmp6_2_1,0x0,SIZE1);
  memset(tmp7_0,0x0,SIZE1);
  memset(tmp7_1,0x0,SIZE1);
  memset(tmp8_0,0x0,SIZE1);
  memset(tmp8_1,0x0,SIZE1);
  memset(tmp9_0,0x0,SIZE1);
  memset(tmp9_1,0x0,SIZE1);
  memset(result,0x0,SIZE);
        }
    }
}

char * GetPrintPath(const char *WORKDIR)
{
        char *envp;
        if((envp = getenv(WORKDIR))==NULL)
        {
                printf("error");
                return NULL;
        }
        return envp;
}

#define TEMPDIR "/usr/nmsadmin/print"
#define WORKDIR "HOME"
#define TRUE    1
void p_debug(va_alist)
va_dcl
{
        va_list args;
        char    *fmt;
        FILE    *fp;
        char *envp;
        char filename[SIZE1], *ttyname(), *tname;
        tname = ttyname(TRUE);
        envp = GetPrintPath(WORKDIR);
        strcpy(filename,envp);
        strcat(filename,"/print/alctapp");
        /*sprintf(filename, "%s/alctapp", TEMPDIR);deleted by weihy 2005.01.27*/
        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 *envp;
        char filename[SIZE1],*ttyname(),*tname;
        tname=ttyname(TRUE);
        envp = GetPrintPath(WORKDIR);
        strcpy(filename,envp);
        strcat(filename,"/print/alcterr");
        /*sprintf(filename,"%s/alcterr",TEMPDIR);delete by weihy 2005.01.27*/
        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;
        }
        if (str[i] == ']') {
           str[i] = ' ';

                     i++;
           goto start;
        }
        if (str[i] == ')') {
           str[i] = ' ';
           i++;
           goto start;
        }
        if (str[i] == '=') {
           str[i] = ' ';
           i++;
           goto start;
        }
        if (str[i] == '-') {
           str[i] = ' ';
           i++;
           goto start;
        }
        if (str[i] == ',') {
           str[i] = ' ';
           i++;
           goto start;
        }
        if (str[i] == '.') {
           str[i] = ' ';
           i++;
           goto start;
        }
        if (str[i] == ';') {
           str[i] = ' ';
           i++;
           goto start;
        }
        i++;
      }
      return(0);
   }
int strheader(char *buf)
{
        char  *strhead;
        char  tmp[256];

        strhead="03011001120011|";
        strcpy(tmp,buf);
        strcpy(buf,strhead);
        strcat(buf,tmp);
}

int stop()
{
        static int time=0;
        time++;
        return(time);
}


#define SNDPORT 5201
int snddata(char *buff)
{
   struct sockaddr_in server;
   int tmpsock,flag = 1,i,errno;
   int wrtlen;

   if ((tmpsock = socket(AF_INET,SOCK_STREAM,0))<0)
      return(-1);
   server.sin_family = AF_INET;
   server.sin_port = htons(SNDPORT);
   server.sin_addr.s_addr = inet_addr("192.168.123.153");

   /*connect to server*/
  if(connect(tmpsock,(struct sockaddr *)&server,sizeof(struct sockaddr))<0){
        /*printf("connect to server error\n");*/
         close(tmpsock);
         return(-3);
   }
   else{
        wrtlen=write(tmpsock,buff,strlen(buff));
        if (wrtlen)
        close(tmpsock);
        }
}

⌨️ 快捷键说明

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