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

📄 nokdata.pc

📁 linux下c 编写的 某项目代理服务端部分的代码。其中包括网络通信
💻 PC
📖 第 1 页 / 共 2 页
字号:
    	int length=MAXDATASIZE;    	int scode=0;    	char temp[216];    	char buff[150];    	struct Packet *H,*pket,*tmp;    	pket=opket;    	int pack_sequence=0;    	int i=0;    	int j=0;    	memset(temp,0,sizeof(temp));     	memset(buff,0,sizeof(buff));        	sphead=sphead->next;    	         	while(sphead)    	{        	i++;           	s_debug("\ni=%d",i);           	sprintf(buff,"%s %s %s %s %s %s %s %s %s   %s   %s","#",sphead->pack_buffs.b_consec_nbr,\           		sphead->pack_buffs.b_int_id,sphead->pack_buffs.b_alarm_status,\                        sphead->pack_buffs.b_alarm_time,sphead->pack_buffs.b_cancel_time,\                        sphead->pack_buffs.b_alarm_number,sphead->pack_buffs.b_severity,sphead->pack_buffs.name,\                        sphead->pack_buffs.tag,sphead->pack_buffs.site_no);           	s_debug("\nbuff=%s",buff);           	if(i==1)           	{                    		strcpy(hed->data,buff);               		len=strlen(buff);               		leng=length-len;               		length=leng;           	}           	else{               		len=strlen(buff);               		leng=length-len;               		length=leng;               		s_debug("\nleng=%d",leng);               		s_debug("\nlen=%d",len);               		if (leng>=0)                   		strcat(hed->data,buff);               		else               		{                   		char *ll=buff;                   		strcpy(temp,ll+len+leng);                   		s_debug("\ntemp=%s",temp);                   		strncat(hed->data,buff,len+leng);                                      		#ifdef TEST                   		s_debug("\nOne data=%s",hed->data);                                      		#endif                    		hed->ctrmsg.morepkt=1;                   		hed->ctrmsg.pktype=1;                   		hed->ctrmsg.united=0;                   		hed->ctrmsg.save=0;                   		hed->ctrmsg.sequence=htons(pack_sequence+1);                   		pack_sequence++;                   		hed->ctrmsg.length=strlen(hed->data);	           		hed->ctrmsg.msgtype=getpid();                   		strcpy(hed->header.code,"1011");                  		strcpy(hed->header.d_add,"11015");                   		strcpy(hed->header.s_add,"11015");                   		#ifdef TEST                   		s_debug("\nhed->header.code=%s",hed->header.code);                   		s_debug("\nhed->ctrmsg.pktype=%d",hed->ctrmsg.pktype);                   		s_debug("\nhed->ctrmsg.united=%d",hed->ctrmsg.united);                   		s_debug("\nhed->ctrmsg.save=%d",hed->ctrmsg.save);                   		s_debug("\nhed->ctrmsg.sequence=%d",hed->ctrmsg.sequence);	           		#endif                                 		H=(struct Packet *)malloc(sizeof(struct Packet));                   		H->next=NULL;                   		pket->next=H;                   		pket=H;                   		memcpy(pket->data,hed,PKTSTRULEN);                   		#ifdef TEST                   		s_debug("\npket->data=%s",pket->data);                   		#endif                   		memset(hed,0,sizeof(struct pktstru));                   		strcpy(hed->data,temp);                             		#ifdef TEST                   		s_debug("\nhed->data=%s",hed->data);                   		#endif                               		length=MAXDATASIZE-strlen(temp);               		}           	}            	#ifdef TEST           	s_debug("\nhed->data=%s",hed->data);           	#endif            	sphead=sphead->next;             		if(sphead==NULL)       		{			j++;        		s_debug("\nj=[%d]",j);         		hed->ctrmsg.morepkt=0;         		hed->ctrmsg.pktype=1;         		hed->ctrmsg.united=1;         		hed->ctrmsg.save=0;         		hed->ctrmsg.sequence=htons(pack_sequence+1);         		pack_sequence++;         		hed->ctrmsg.length=strlen(hed->data);         		hed->ctrmsg.msgtype=getpid();         		strcpy(hed->header.code,"1011");         		strcpy(hed->header.d_add,"11015");         		strcpy(hed->header.s_add,"11015");           		#ifdef TEST		   	s_debug("\nhed->header.code=%s",hed->header.code);                   	s_debug("\nhed->ctrmsg.morepkt=%d",hed->ctrmsg.morepkt);                   	s_debug("\nhed->ctrmsg.pktype=%d",hed->ctrmsg.pktype);                   	s_debug("\nhed->ctrmsg.united=%d",hed->ctrmsg.united);                   	s_debug("\nhed->ctrmsg.save=%d",hed->ctrmsg.save);                   	s_debug("\nhed->ctrmsg.sequence=%d",hed->ctrmsg.sequence);                   	s_debug("\nOne data=%s",hed->data);                		#endif                       		H=(struct Packet *)malloc(sizeof(struct Packet));         		H->next=NULL;         		memset(H,0,sizeof(struct Packet));         		pket->next=H;         		pket=H;                                      	memcpy(pket->data,hed,PKTSTRULEN);                   	#ifdef TEST                   	s_debug("\npket->data leng=[%d]",sizeof(pket->data));                   	/*s_debug("\npket->data=%s",pket->data);*/                   	#endif        	}    	}        return 0;}void Makepkt_snd(struct Pack_buffs *sphead){	struct Packet *packet,*p,*Header;     	packet=(struct Packet *)malloc(sizeof(struct Packet));     	packet->next=NULL;     	Header=packet;     	p=packet;     	struct pktstru *h,tempstruc;	h=(struct pktstru *)malloc(sizeof(struct pktstru));     	memset(h,0,sizeof(struct pktstru));     	char jgbm[6];     	char njgbm[6];      	char buf[512];     	unsigned short addno;     	unsigned int sndport;     	unsigned long ipadd;     	int j=0;     	int sock;     	int mcode=0;     	struct comshm * shmp;     	memset(jgbm,0x0,sizeof(jgbm));     	memset(njgbm,0x0,sizeof(njgbm));     	memset(buf,0x0,sizeof(buf));     	mcode=MakePack(sphead,h,p);     	if(mcode!=0)        	v_debug("\nMakePack Wrong!");      	shmp=GetShm();     	addno=shmp->addno;     	strcpy(jgbm,h->header.d_add);     	#ifdef TEST     	s_debug("\njgbm=%s",jgbm);      	#endif     	for(j=0;j<=addno;j++)     	{        	strcpy(njgbm,shmp->addstrlist[j].jgbm);          	#ifdef TEST          	s_debug("\nnjgbm=%s",njgbm);           	#endif                 	if(strcmp(jgbm,njgbm)==0)          	{               		sndport=shmp->addstrlist[j].sndport;               		ipadd=shmp->addstrlist[j].ipadd;               		#ifdef TEST               		s_debug("\nsndport=%d",sndport);               		s_debug("\nipadd=%ul",ipadd);               		#endif                              		sock=connsockid(sndport,ipadd);               		if (sock<0)                     		syslog("get sockid faill",__FILE__,__LINE__);               		else                     		s_debug("\nsock succ !");              		break;                         	}           	memset(njgbm,0x0,strlen(njgbm));     	}     	if(j>addno)               	v_debug("\nNo match jgbm!");      	while(packet->next)     	{             	packet=packet->next;             	#ifdef TEST             	s_debug("\npacket->data=%s",packet->data);             	s_debug("\nsizeof(packetdata)=%d",strlen(packet->data));             	#endif                       	int rdlen;             	rdlen=writenet(sock,packet->data,PKTSTRULEN);             	if (rdlen<0){                     	syslog("snd data fail",__FILE__,__LINE__);                     	close(sock);             	}             	else                	 s_debug("\nwrit succ");            	/* memset(buf,0x0,sizeof(buf));  */      	}}

⌨️ 快捷键说明

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