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

📄 transform.c

📁 一个很好的例子-基于Linux的消息传输系统
💻 C
📖 第 1 页 / 共 2 页
字号:
#include "transform.h"
int serial;
void init(Message *message)
{
	char *p,*q,*con2_dmt,*con1_src,*con1_des,*con1_data,*con3_target;
	char *con5_appName,*con5_Group,*con6_description,*srcIp,*con4_ip0,*con4_ip1;
	int con4_state0,con4_state1,con6_result,con7_state,type,app_port,con5_appId,con1_desApp,con1_srcApp;
	int i,con1_type,con1_sendRange,con1_syn,con1_compulsory,con1_state,con1_priority,con1_length;
	int srcPort,priority,con4_result,con7_count,con2_index;
	p=(char*)malloc(sizeof(char)*32);
        q=(char*)malloc(sizeof(char)*32);
	srcIp=(char*)malloc(sizeof(char)*32);
        printf("type : ");
        scanf("%d",&type);
	printf("src : ");
	scanf("%s",p);
	printf("srcIp : ");
	scanf("%s",srcIp);
	printf("srcPort : ");
	scanf("%d",&srcPort);
	printf("des : ");
	scanf("%s",q);
        printf("priority : ");
	scanf("%d",&priority);
	message->type=type;
	message->serial=serial++;
        message->srcPort=srcPort;

	for(i=0;i<32&&p[i]!='\0';i++)
		message->src[i]=p[i];
	message->src[i]='\0';

	for(i=0;i<32&&q[i]!='\0';i++)
		message->des[i]=q[i];
        message->des[i]='\0';

	for(i=0;i<32&&srcIp[i]!='\0';i++)
		message->srcIp[i]=srcIp[i];
	message->srcIp[i]='\0';

	message->priority=priority;
	message->length=32;
	free(p);
	free(q);
	free(srcIp);
	switch(message->type)
	{
	case 11 : 
		con2_dmt=(char*)malloc(sizeof(char)*32);
                printf("index : ");
                scanf("%d",&con2_index);
		printf("dmt : ");
		scanf("%s",con2_dmt);
		message->content=(DmtRegRequest*)malloc(sizeof(DmtRegRequest));
                (*(DmtRegRequest*)(message->content)).index=con2_index;
		for(i=0;i<32&&con2_dmt[i]!='\0';i++)
		    (*(DmtRegRequest*)(message->content)).dmt[i]=con2_dmt[i];
		(*(DmtRegRequest*)(message->content)).dmt[i]='\0';
		free(con2_dmt);
		break;
	case 1 :
	case 6 :
	case 7 :
	case 12 :
	case 15 : 
	case 17 :
		con1_src=(char*)malloc(sizeof(char)*32);
		con1_des=(char*)malloc(sizeof(char)*32);
		con1_data=(char*)malloc(sizeof(char)*32);
		printf("con1_type 0|1|2: ");
		scanf("%d",&con1_type);
		printf("con1_sendRange 0|1|2: ");
		scanf("%d",&con1_sendRange);
		printf("con1_syn 0|1: ");
		scanf("%d",&con1_syn);
		printf("con1_compulsory 0|1: ");
		scanf("%d",&con1_compulsory);
		printf("con1_state 0|1|2: ");
		scanf("%d",&con1_state);
		printf("con1_src : ");
		scanf("%s",con1_src);
		printf("con1_srcApp : ");
		scanf("%d",&con1_srcApp);
		printf("con1_des : ");
		scanf("%s",con1_des);
		printf("con1_desApp : ");
		scanf("%d",&con1_desApp);
		printf("con1_priority -1|0|1: ");
		scanf("%d",&con1_priority);
		printf("con1_length : ");
		scanf("%d",&con1_length);
		printf("con1_data : ");
		scanf("%s",con1_data); 
//		scanf("%c",&con1_data[0]);
//		for(i=1;i<con1_length;i++)
//			scanf("%c",&con1_data[i]);
//		con1_data[i]='\0';
		
		message->content=(DataMsgContent*)malloc(sizeof(DataMsgContent));
		(*(DataMsgContent*)(message->content)).type=con1_type;
		(*(DataMsgContent*)(message->content)).sendRange=con1_sendRange;
		(*(DataMsgContent*)(message->content)).syn=con1_syn;
		(*(DataMsgContent*)(message->content)).compulsory=con1_compulsory;
		(*(DataMsgContent*)(message->content)).state=con1_state;

		for(i=0;i<31&&con1_src[i]!='\0';i++)
			(*(DataMsgContent*)(message->content)).src[i]=con1_src[i];
		(*(DataMsgContent*)(message->content)).src[i]='\0';
	
		(*(DataMsgContent*)(message->content)).srcApp=con1_srcApp;
	
		for(i=0;i<31&&con1_des[i]!='\0';i++)
			(*(DataMsgContent*)(message->content)).des[i]=con1_des[i];
		(*(DataMsgContent*)(message->content)).des[i]='\0';
		
		(*(DataMsgContent*)(message->content)).desApp=con1_desApp;	
		(*(DataMsgContent*)(message->content)).priority=con1_priority;
		(*(DataMsgContent*)(message->content)).length=con1_length;
		(*(DataMsgContent*)(message->content)).data=con1_data;
                printf("addr : %p\n",con1_data);
		free(con1_src);
		free(con1_des);	
		break;
	case 10 :
		con3_target=(char*)malloc(sizeof(char));
		printf("target : ");
		scanf("%s",con3_target);
		message->content=(MapRequestContent*)malloc(sizeof(MapRequestContent));
		for(i=0;i<32&&con3_target[i]!='\0';i++)
			(*(MapRequestContent*)(message->content)).target[i]=con3_target[i];
		(*(MapRequestContent*)(message->content)).target[i]='\0';
		break;
	case 4 :
		con4_ip0=(char *)malloc(sizeof(char)*32);
		con4_ip1=(char *)malloc(sizeof(char)*32);
		printf("result : ");
		scanf("%d",&con4_result);
		printf("state0 : ");
		scanf("%d",&con4_state0);
		printf("ip0 : ");
		scanf("%s",con4_ip0);
		printf("state1 : ");
		scanf("%d",&con4_state1);
		printf("ip1 : ");
		scanf("%s",con4_ip1);
		message->content=(MapRespondContent*)malloc(sizeof(MapRespondContent));
		(*(MapRespondContent*)(message->content)).result=con4_result;
		(*(MapRespondContent*)(message->content)).state0=con4_state0;

		for(i=0;i<32 && con4_ip0[i]!='\0';i++)
			(*(MapRespondContent*)(message->content)).ip0[i]=con4_ip0[i];
		(*(MapRespondContent*)(message->content)).ip0[i]='\0';

		(*(MapRespondContent*)(message->content)).state1=con4_state1;

		for(i=0;i<32 && con4_ip1[i]!='\0';i++)
			(*(MapRespondContent*)(message->content)).ip1[i]=con4_ip1[i];
		(*(MapRespondContent*)(message->content)).ip1[i]='\0';
		free(con4_ip0);
		free(con4_ip1);
		break;
	case 9 :
	case 16 :
		con5_appName=(char*)malloc(sizeof(char)*32);
		con5_Group=(char*)malloc(sizeof(char)*32);
		printf("appName : ");
		scanf("%s",con5_appName);
		printf("appId : ");
		scanf("%d",&con5_appId);
		printf("app_port : ");
		scanf("%d",&app_port);
		printf("Group : ");
		scanf("%s",con5_Group);
		printf("\nsuc0!");
		message->content=(AppRegContent*)malloc(sizeof(AppRegContent));
		(*(AppRegContent*)(message->content)).port=app_port;
                strcpy((*(AppRegContent*)(message->content)).appName,con5_appName);
		(*(AppRegContent*)(message->content)).appId=con5_appId;

		for(i=0;i<31&&con5_Group[i]!='\0';i++)
			(*(AppRegContent*)(message->content)).Group[i]=con5_Group[i];
		(*(AppRegContent*)(message->content)).Group[i]='\0';
		free(con5_appName);
		free(con5_Group);
		break;
	case 3 :
	case 5 :
	case 13 :
	case 14 :
		con6_description=(char*)malloc(sizeof(char)*32);
		printf("result : ");
		scanf("%d",&con6_result);
		printf("description : ");
		scanf("%s",con6_description);
		message->content=(CommonRespondContent*)malloc(sizeof(CommonRespondContent));
		(*(CommonRespondContent*)(message->content)).result=con6_result;
		for(i=0;i<31&&con6_description[i]!='\0';i++)
			(*(CommonRespondContent*)(message->content)).description[i]=con6_description[i];
		(*(CommonRespondContent*)(message->content)).description[i]='\0';
		free(con6_description);
		break;
	case 2 :
	case 8 :
		printf("count : ");
		scanf("%d",&con7_count);
		printf("state : ");
		scanf("%d",&con7_state);
		message->content=(MonitorContent*)malloc(sizeof(MonitorContent));
		(*(MonitorContent*)(message->content)).count=con7_count;
		(*(MonitorContent*)(message->content)).state=con7_state;
	}
}

void byteTostr7(Message *msg,char *point)
{
	msg->content=(MonitorContent*)malloc(sizeof(MonitorContent));
	(*(MonitorContent*)(msg->content)).count=*(int *)point;
	point=point+4;
	(*(MonitorContent*)(msg->content)).state=*(int *)point;
	point=point+4;
}

void byteTostr6(Message *msg,char *point)
{
	int i;
	msg->content=(CommonRespondContent*)malloc(sizeof(CommonRespondContent));
	(*(CommonRespondContent*)(msg->content)).result=*(int *)point;
	point=point+4;
	for(i=0;point[i]!='\0';i++)
		(*(CommonRespondContent*)(msg->content)).description[i]=point[i];
	(*(CommonRespondContent*)(msg->content)).description[i]='\0';
}

void byteTostr5(Message *msg,char *point)
{
	int i;
	msg->content=(AppRegContent*)malloc(sizeof(AppRegContent));
	for(i=0;point[i]!='\0';i++)
		(*(AppRegContent*)(msg->content)).appName[i]=point[i];
	(*(AppRegContent*)(msg->content)).appName[i]='\0';
	point=point+32;

	(*(AppRegContent*)(msg->content)).appId=*(int *)point;
	point=point+4;

	for(i=0;point[i]!='\0';i++)
		(*(AppRegContent*)(msg->content)).Group[i]=point[i];
	(*(AppRegContent*)(msg->content)).Group[i]='\0';
	point=point+32;
	
	(*(AppRegContent*)(msg->content)).port=*(int *)point;	
	point=point+4;
}

void byteTostr4(Message *msg,char *point)
{
	int i;
	msg->content=(MapRespondContent*)malloc(sizeof(MapRespondContent));

	(*(MapRespondContent*)(msg->content)).result=*(int *)point;
	point=point+4;

	(*(MapRespondContent*)(msg->content)).state0=*(int *)point;
	point=point+4;

	for(i=0;point[i]!='\0';i++)
		(*(MapRespondContent*)(msg->content)).ip0[i]=point[i];
	(*(MapRespondContent*)(msg->content)).ip0[i]='\0';
	point=point+32;

	(*(MapRespondContent*)(msg->content)).state1=*(int *)point;
	point=point+4;

	for(i=0;point[i]!='\0';i++)
		(*(MapRespondContent*)(msg->content)).ip1[i]=point[i];
	(*(MapRespondContent*)(msg->content)).ip1[i]='\0';
}

void byteTostr3(Message *msg,char *point)
{
	int i;
	msg->content=(MapRequestContent*)malloc(sizeof(MapRequestContent));
	for(i=0;point[i]!='\0';i++)
		(*(MapRequestContent*)(msg->content)).target[i]=point[i];
	(*(MapRequestContent*)(msg->content)).target[i]='\0';
}

void byteTostr2(Message *msg,char *point)
{
	int i;
	msg->content=(DmtRegRequest*)malloc(sizeof(DmtRegRequest));
        (*(DmtRegRequest*)(msg->content)).index=*(int *)point;
	for(i=0;point[i]!='\0';i++)
		(*(DmtRegRequest*)(msg->content)).dmt[i]=point[i];
	(*(DmtRegRequest*)(msg->content)).dmt[i]='\0';
}

void byteTostr1(Message *msg,char *point)
{
	int i;
		msg->content=(DataMsgContent*)malloc(sizeof(DataMsgContent));
		((DataMsgContent*)(msg->content))->data = (char *)malloc(sizeof(char)*100);
		(*(DataMsgContent*)(msg->content)).type=*(int *)point;
		point=point+4;
		(*(DataMsgContent*)(msg->content)).sendRange=*(int *)point;
		point=point+4;
		(*(DataMsgContent*)(msg->content)).syn=*(int *)point;
		point=point+4;
		(*(DataMsgContent*)(msg->content)).compulsory=*(int *)point;
		point=point+4;
		(*(DataMsgContent*)(msg->content)).state=*(int *)point;
		point=point+4;
		for(i=0;point[i]!='\0';i++)
			(*(DataMsgContent*)(msg->content)).src[i]=point[i];
		(*(DataMsgContent*)(msg->content)).src[i]='\0';
		point=point+32;

		(*(DataMsgContent*)(msg->content)).srcApp=*(int *)point;
		point=point+4;

		for(i=0;point[i]!='\0';i++)
			(*(DataMsgContent*)(msg->content)).des[i]=point[i];
		(*(DataMsgContent*)(msg->content)).des[i]='\0';
		point=point+32;

		(*(DataMsgContent*)(msg->content)).desApp=*(int *)point;
		point=point+4;

		(*(DataMsgContent*)(msg->content)).priority=*(int *)point;
		point=point+4;

⌨️ 快捷键说明

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