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

📄 appmon.c

📁 有线电视系统前端设备复用器原代码。 用语接受卫星信号
💻 C
字号:
/*------------------------------------------------------------------*/
/* appmon.c                                                         */
/* udp socket to send debug info                                    */
/*------------------------------------------------------------------*/
#include "constant.h"
#include "structure.h"
#include "command.h"
#include "tspack.h"
#include "pna.h"
#include "psos.h"
extern void my_Delay(unsigned long int dly_ms);

#define APP_MON_PORT  0x8888
#define QN_APPMONSEND "APPM"

void tk_appmon(void)
{
	int i;
	int rc;
	int s;
	struct 		  sockaddr_in BroadcastAddr,MultiplexerAddr;
	unsigned long qid;
	MESSAGE       Msg;
	long          b=1;

	CreateQueue(QN_APPMONSEND,&qid);

	MultiplexerAddr.sin_family		= AF_INET;					 
	MultiplexerAddr.sin_port		= htons(APP_MON_PORT);			 
	MultiplexerAddr.sin_addr.s_addr = htonl(INADDR_ANY);	 
	for(i=0;i<8;i++)
		MultiplexerAddr.sin_zero[i] = 0;					 

	BroadcastAddr.sin_family		= AF_INET;					 
	BroadcastAddr.sin_port			= htons(APP_MON_PORT);			 
	BroadcastAddr.sin_addr.s_addr	= htonl(0xFFFFFFFF);	 
	for(i=0;i<8;i++)
		BroadcastAddr.sin_zero[i] = 0;					 

	for(;;)
	{
		s=socket(AF_INET, SOCK_DGRAM, UDP);
		if(s == -1) 
		{
			my_Delay(100);	/*by xu*/
			Display("appmon: socket create error, error code=0x%x\n",errno);
			continue;
		}

		rc=setsockopt(s,SOL_SOCKET,SO_BROADCAST,(char *)&b,4);
		if(rc == -1) 
		{
			my_Delay(100);/*by xu*/	
			Display("appmon: socket set broadcast option error, error code=0x%x\n",errno);
			continue;
		}

		rc=setsockopt(s,SOL_SOCKET,SO_DONTROUTE,(char *)&b,4);
		if(rc == -1) 
		{
			my_Delay(100);/*by xu*/	
			Display("appmon: socket set dontroute option error, error code=0x%x\n",errno);
			continue;
		}

		rc = bind(s, (struct sockaddr *)&MultiplexerAddr, sizeof(MultiplexerAddr));
		if(rc == -1)
		{
			my_Delay(100);/*by xu*/			 
			Display("appmon: socket bind error, error code=0x%x\n",errno);
			continue;
		}

		break;
	}

	for(;;)
	{
		rc=ReceiveQueue(QN_APPMONSEND,Q_WAIT,0,&Msg);
		if(rc)
		{
			my_Delay(100);/*by xu*/
			
			Display("appmon: receive message failed!\n");

			continue;
		}
		else
		{
			if(Msg.Pdata == NULL)
				continue;
			rc=sendto(s,(char *)Msg.Pdata,Msg.Length,0,(struct sockaddr *)&BroadcastAddr,sizeof(struct sockaddr));
			if(rc<0)
				Display("appmon: socket send error, error code=0x%x\n",errno);
			MemFree((char *)Msg.Pdata);
		}
	
	}
}

⌨️ 快捷键说明

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