📄 webcomm.c
字号:
#include <pthread.h>
#include <sys/time.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h> //usleep(int micro_sec);
#include "SM_Text_Down.h"
#include "ConfigInfo.h"
#define MAXPlNum 1024
#define MAXLINE 1024
extern pthread_mutex_t mut;
char VedioBuffer[MaxReceiveBufSize];
char SendMsg[SendMsgBufSize];
char SendMsgTeampLate[SendMsgBufSize];
char tmpchar[MaxReceiveBufSize];
char tmpchar1[MaxReceiveBufSize];
//extern char DnLoadingname[128];
extern int ServPort2;
extern char CurDate[10];
extern int VisitWsIntervalSeconds ;
extern char servIP[smallbuffsize];
extern int SavePlFlag;
extern int SaveMlFlag;
extern ExsitList Exsitlist;
extern Fileinfo FileInfo;
extern char *ipaddr;
char DownLoadingName[MAXPlNum];
int flag;
int cn;
char pname1[MAXLINE][MAXLINE]; //downloading program list
struct stat statbuf;
struct VedioPLNumber Vplnumber;
//extern struct IniConfig Conf;
off_t filesize;
char downfilepath[MAXPlNum]="media";
void *Commthread1_Loop()
{
int status,ret;
#if 0
int cn=0;
int rtime=0;
int length;
char DnPath[128];
char Config_LocalFileName[128];
char DownLoading_File[128];
char Playlistfile[128];
char Msglistfile[128];
#endif
char *dir;
#if 0
ConfigGetKey("Conf/Config.ini","Path","path",DnPath);
length=strlen(DnPath);
if(DnPath[length-1]!='/')
{
DnPath[length]='/';
DnPath[length+1]='\0';
}
strcpy(Config_LocalFileName,DnPath);
strcpy(DownLoading_File,DnPath);
strcpy(Playlistfile,DnPath);
strcat(Config_LocalFileName,"Conf/Config.ini");
printf("%s\n",DnPath);
#endif
pthread_mutex_lock(&mut);
while(1)
{
SavePlFlag=0;
SaveMlFlag=0;
DnLoadingname[0]='\0';
SendMsgTeampLate[0]='\0';
//ReqPicMsgBuf[0]='\0';
SendMsg[0]='\0';
//printf("#################\n");
//dir = getcwd((char *)NULL,256);
//printf("Current dir is %s\n",dir);
//printf("#################\n");
ReadConfigFile();
Pack_Req_Data(SendMsg);
printf("%s\n",SendMsg);
ipaddr=host2ip(Conf.CommServer);
status=http_socket_comm(tmpchar,tmpchar1,SendMsg,ipaddr,ServPort2);
//if(cn%4==1)
//Read_to_File("/opt/WebHttpDownLoad/content.ini",tmpchar1,3);
printf("%s\n",tmpchar);
printf("%d\n",status);
//if(status>0)
// continue;
printf("%s\n",tmpchar1);
Get_Heart_Data(tmpchar1,VedioBuffer);
Get_TempLate_File(SendMsgTeampLate);
//Get_Pic_File(ReqPicMsgBuf);
if(!strncmp(FileInfo.PLsave,"1",1)||!strncmp(FileInfo.MLsave,"1",1))
WriteConfigFile();
//free(DataCrc32);
//if(cn%4==0){
//ConfigSetKey(TmlConfigP_LocalConfigFileName,"Status","ExsitPL","44567832");
//ConfigSetKey(TmlConfigP_LocalConfigFileName,"Status","ExsitML","45634667");
//}
//cn++;
//rtime++;
pthread_mutex_unlock(&mut);
sleep(VisitWsIntervalSeconds);
}
return ;
}
void *Commthread2_Loop()
{
int i=0,ret,j;
pthread_mutex_lock(&mut);
while(1)
{
#if 1
memset(Vplnumber.DnLoadingName,0,sizeof(Vplnumber.DnLoadingName));
/*get download file num*/
cn=GetDn_File(TempDownLoading_FileList );
for(i=0;i<cn;i++)
printf("%s\n",pname1+i);
printf("cn=%d\n",cn);
for(i=0;i<cn-2;i++){
pthread_mutex_lock(&mut);
/*construct full downfilepath*/
strcat(downfilepath,strrchr((pname1+i),'/'));
printf("%s\n",downfilepath);
/*check needing to download file wether exsit or not*/
if(stat(downfilepath,&statbuf)<0){
perror("file open");
}
/*get local download file size*/
filesize=statbuf.st_size;
if(filesize<=0)
flag=0;
else{
flag=1;
filesize=0;
statbuf.st_size=0;
}
memset(downfilepath,0,sizeof(downfilepath));
strcpy(downfilepath,"media");
/*if download file is not exsit,so that download a new file*/
if(flag==0){
memset(Vplnumber.DnLoadingName,0,sizeof(Vplnumber.DnLoadingName));
strcpy(Vplnumber.DnLoadingName,strrchr((pname1+i),'/')+1);
ftpcmd(Conf.FtpHost, "-g",Conf.FtpUser,Conf.FtpPass, (pname1+i), "media");
Vplnumber.DnCompleteFlag=1;
}/*if download file is exsit and size is larger than zero,so that download file at restart point */
else{
ftpcmd(Conf.FtpHost,"-rg",Conf.FtpUser,Conf.FtpPass,(pname1+i),"media");
}
}
#endif
pthread_mutex_unlock(&mut);
sleep(10);
}
return ;
}
int GetDn_File( char *filename)
{
int i=0,k=0;
int retv=0;
int rt;
FILE *fp=NULL;
char *line[MAXLINE];
char *SaveBuf[MAXLINE];
char *path[MAXLINE];
if((fp=fopen(filename,"r"))==NULL)
return (-3);
while(retv>=0)
{
retv=FileGetLine(fp,(line+i),MAXLINE);
//printf("ret=%d\n",retv);
if(retv>0){
// printf("%s\n",(line+i));
rt=SubStringV3((line+i), "<", ">", MAXLINE,(SaveBuf+i));
//printf("rt=%d\n",rt);
if(rt==1)
{
memset(Vplnumber.DnPlNo,0,sizeof(Vplnumber.DnPlNo));
strTrimlf(line+i);
strcpy(Vplnumber.DnPlNo,(line+i));
// printf("%s\n",Vplnumber.DnPlNo);
}
if(rt>0) continue;
getpath((SaveBuf+i),MAXLINE,(path+i));
strcpy((pname1[k]),(path+i));
k++;
}
// printf("retv=%d\n",retv);
i++;
}
fclose(fp);
return k;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -