Гость Опубликовано 7 апреля, 2004 Жалоба Поделиться Опубликовано 7 апреля, 2004 Помогите срочно надо !!! Есть кусок кода в котором я испульзую multicast. #include #include #include #include #include #include #include #include #define STDTRACE(i) std::cout << __FILE__ << ":"<< __LINE__ << std::endl; Error(i); int Socket; socklen_t nlen; struct sockaddr_in Address,sto,From; struct in_addr addr; char Buf[512]; const short port = 1400; void Error(int i); int main(int argc, char **argv) { bzero((char *)&sto,sizeof(sto)); addr.s_addr=inet_addr("225.0.0.1"); sto.sin_family=AF_INET; sto.sin_port=htons(port); sto.sin_addr=addr; nlen=sizeof(sockaddr_in); int ttl=7,one=1; struct ip_mreq mreq; if((Socket=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP))==-1) { STDTRACE(0); } Address.sin_family=AF_INET; Address.sin_port=htons(port); Address.sin_addr.s_addr=INADDR_ANY; if(bind(Socket,(struct sockaddr *)&Address,sizeof(Address))==-1) { STDTRACE(1); } if(setsockopt(Socket,IPPROTO_IP,IP_MULTICAST_TTL,&ttl,sizeof(ttl))==-1) { STDTRACE(2); } bzero((char *)&mreq,sizeof(mreq)); mreq.imr_multiaddr.s_addr=inet_addr("225.0.0.1"); mreq.imr_interface.s_addr=INADDR_ANY; if(setsockopt(Socket,IPPROTO_IP,IP_ADD_MEMBERSHIP,&mreq,sizeof(mreq))==-1) { STDTRACE(2); //ВОТ ТУТ ВЫСКАКИВАЕМ ОШИБКА !!!!!!!!! } setsockopt(Socket,SOL_SOCKET,SO_REUSEADDR,&one,sizeof(one)); } void Error(int i) { char *errors[6]={"Error of socket", "Error of bind:port already busy", "Error of setsockopt", "Error of sending", "Error of gethostname", "Error of gethostbyname"}; std::cout << errors << " " < exit(1); } При запуске вот что она говорит [lamer@a tmp]$ ./a.out sechat.cpp:60 Error of setsockopt No such device [lamer@a tmp]$ Подскажите чё делать ????????? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.