broadcast_b.c

来自「使用三块无线网卡在两个嵌入式板子」· C语言 代码 · 共 68 行

C
68
字号
/*
 * broadcast.c - An IP multicast server
 */
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <unistd.h>
#include <stdlib.h>
#define GRUPO "224.0.0.1"
int port = 6789;
int main ( void )
{
	int socket_descriptor;

	struct sockaddr_in address;
	/*  首先建立套接口 */
	socket_descriptor = socket ( AF_INET, SOCK_DGRAM, 0 );

	if ( socket_descriptor == -1 )
	{
		perror ( "Opening socket" );
		exit ( EXIT_FAILURE );
	}
	else
	{
		printf ( "socket_descriptor = %d \n",socket_descriptor );
	}

	/* 初始化IP多播地址 */
	memset ( &address, 0, sizeof ( address ) );

	address.sin_family = AF_INET;

	address.sin_addr.s_addr = inet_addr ( GRUPO );

	address.sin_port = htons ( port );

	/* 开始进行IP多播 */
	{
		int i=0;
		char buf[256];

		while ( 1 )
		{
			if(i==10000)i=0;else i++;
			sprintf ( buf,"test from broadcast index = %d \n",i );

			//if ( sendto ( socket_descriptor, "test from broadcast",sizeof ( "test from broadcast" ), 0, ( struct sockaddr * ) &address, sizeof ( address ) ) < 0 )
			if ( sendto ( socket_descriptor, buf,   strlen ( buf ), 0,     ( struct sockaddr * ) &address, sizeof ( address ) ) < 0 )
			{
				perror ( "sendto" );
				exit ( EXIT_FAILURE );
			}
			else
			{
				fprintf ( stdout, "send %s : %s", GRUPO, buf );
				memset ( buf,0,256 );
			}

			sleep ( 1 );
		}
	}

	exit ( EXIT_SUCCESS );
}

⌨️ 快捷键说明

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