LINUX.ORG.RU

И при передаче широко пакета получаю Access denied


0

0

Есть машина с интерфейсом 192.168.1.2
С ней пытаюсь организовать широко вещательную передачу в переделах сети.
Делаю это вот так

char host[256]={"192.168.1.255"};
char serv[256]={"8888"};
int sockfd,n;
addrinfo hints, *res=NULL, *ressave=NULL;
bzero(&hints,sizeof(addrinfo));
hints.ai_family=AF_UNSPEC;
hints.ai_socktype=SOCK_DGRAM;

if((n=getaddrinfo(host,serv,&hints,&res))!=0)
return NULL;

ressave=res;
do
{
sockfd=socket(res->ai_family,res->ai_socktype,res->ai_protocol);

Как результат получаю access denied?
В чем может быть проблема?
if(sockfd>=0)
break;
}
while((res=res->ai_next)!=NULL);

if(res==NULL)
return NULL;
int g=res->ai_addrlen;
g=res->ai_addr->sa_family;

//saptr=new sockaddr;//new char [res->ai_addrlen];
memcpy(saptr,res->ai_addr,res->ai_addrlen);
g=saptr->sa_family;
*lenp=res->ai_addrlen;

freeaddrinfo(ressave);

int f=0;
static char line[MAXLINE]={'\0'};
utsname myname;
strcat(line,"172.16.1.1");
if(uname(&myname)<0)
return;

for(;;)
{
f=sendto(sockfd,line,strlen(line), 0,sadest,salen);
strcat(line,strerror(errno));
printf("%s",strerror(errno));
sleep(10);
}
}

>Как результат получаю access denied?

Это вопрос или утверждение? Посмотрте что вам возвращется в errno. А так я не понял, какой смысл переберать различные семейства сокетов (PF_UNIX, PF_INET, PF_INET6), укажите явно параметры в "sockfd=socket()".

mky ★★★★★
()

После создания сокета сделать: const int op=1; setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, &op, sizeof(op));

platerx
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.