Здравствуйте!
Возникла надобность написать небольшую технологическую программу, работающую через udp-socket.
До сих пор я имел с ними дело только в программе на Qt. Я начал её делать и тут же проверять
и застрял почти сразу. Вот текст, только существенное.
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <netinet/in.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
int main() {
int nb,nsfd,len;
char buf[160];
unsigned short int ucp=50700;
struct sockaddr_in addr;
strcpy(buf,"192.168.1.34");len=sizeof(addr);
addr.sin_addr.s_addr=inet_addr(buf);;
addr.sin_family=htons(AF_INET);
addr.sin_port=htons(ucp);
nsfd=socket(AF_INET,SOCK_DGRAM,0);
nb=bind(nsfd,(struct sockaddr *)(&addr),len);
if(nb<0){strcpy(buf+20,strerror(errno));
fprintf(stdout,"%d %s\n",errno,buf+20);}
return 0;
}
Однако bind завершается неудачно, код ошибки 97, текст
Address family not supported by protocol
Если, как в некоторых местах, назначать просто addr.sin_family=AF_INET,
то пишет, что не может назначить запрошенный адрес.
В Интернете смотрел, но своего случая не нашёл.
Так в чём же дело?