?? broadcast.c
字號(hào):
/* * 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;
printf ( "1" );
struct sockaddr_in address; /* 首先建立套接口 */
socket_descriptor = socket ( AF_INET, SOCK_DGRAM, 0 );
printf ( "1" );
if ( socket_descriptor == -1 )
{
perror ( "Opening socket" );
exit ( EXIT_FAILURE );
} /* 初始化IP多播地址 */
printf ( "1" );
memset ( &address, 0, sizeof ( address ) );
printf ( "1" );
address.sin_family = AF_INET;
address.sin_addr.s_addr = inet_addr ( GRUPO );
address.sin_port = htons ( port ); /* 開始進(jìn)行IP多播 */
printf ( "1" );
{
int i=0;
char buf[256];
while ( 1 )
{
//fprintf ( buf,"test from broadcast : index = %d \n",i++ );
printf ( "1" );
//sprintf ( buf,"test from broadcast : index = %d \n",i++ );
sprintf ( buf,"test from broadcast : index = \n" );
printf ( "2" );
if ( i%10000==0 )
i=0;
printf ( "3" );
if ( sendto ( socket_descriptor, buf, strlen ( buf ), 0, ( struct sockaddr * ) &address, sizeof ( address ) ) < 0 )
{
printf ( "41" );
perror ( "sendto" );
exit ( EXIT_FAILURE );
}
else
{
printf ( "42" );
fprintf ( stdout, "buf send %s : %s", address.sin_addr.s_addr, buf );
//fprintf ( stdout, "buf send : %s",buf );
}
printf ( "5" );
memset ( buf,0,256 );
printf ( "6" );
sleep ( 1 );
}
}
#if 0
{
int i=0;
char buf[256];
fprintf ( buf,"hello world : times = " ); //while (fgets(buf, MAXBUF, stdin))
while ( 1 )
{
fprintf ( buf,"%d",i++ );
if ( i%10000==0 )
i=0;
if ( sendto ( socket_descriptor, buf,strlen ( buf ), 0, ( struct sockaddr * ) &address, sizeof ( address ) ) < 0 )
{
perror ( "recvfrom" );
}
else
{
fprintf ( stdout, "Enviado a %s: %s", GRUPO, buf );
}
}
}
#endif
exit ( EXIT_SUCCESS );
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -