Re: BROADCAST
Von: Alexandros (niente_spam@chiedetemela.it) [Profil]
Datum: 16.05.2008 10:38
Message-ID: <pKbXj.78657$FR.307003@twister1.libero.it>
Newsgroup: it.comp.os.linux.development
Datum: 16.05.2008 10:38
Message-ID: <pKbXj.78657$FR.307003@twister1.libero.it>
Newsgroup: it.comp.os.linux.development
Max M. ha scritto: > Io ho provato il tuo codice (sulla stessa macchina e su macchine differenti) > e non ho riscontrato problemi. Posta il codice completo che stai usando, o > una versione ridotta compilabile che esibisca lo stesso problema. Grazie per la pazienza :) Codice listener: int main (int argc, char *argv[]) { char buf[BUFLEN]; int n, fd_broad, flag=1; struct sockaddr_in ascolto; struct sockaddr_in indirizzo_sender; socklen_t sender_size=sizeof(indirizzo_sender); ascolto.sin_family¯_INET; ascolto.sin_port=htons(4999); ascolto.sin_addr.s_addr=htonl(INADDR_ANY); fd_broad=socket(PF_INET, SOCK_DGRAM, 0); if (fd_broad<0) perror("\n UDP socket error "), exit(EXIT_FAILURE); setsockopt(fd_broad, SOL_SOCKET, SO_BROADCAST, &flag, sizeof(int)); if ( bind(fd_broad, (struct sockaddr *) &ascolto, sizeof(ascolto)) < 0) { perror("\n bind error "); exit(EXIT_FAILURE); } n=recvfrom(fd_broad, buf, BUFLEN, 0, (struct sockaddr *) &indirizzo_sender, &sender_size); printf("\n task #%d - ricevuto %s da %s \n", getpid(), buf, inet_ntoa(indirizzo_sender.sin_addr) ); return 0; }/*END main*/ --- Codice sender: int main (int argc, char *argv[]) { int fd_udp, n, flag=1; char buf[BUFLEN]; struct sockaddr_in broadcast; broadcast.sin_family¯_INET; broadcast.sin_port=htons(4999); broadcast.sin_addr.s_addr=htonl(INADDR_BROADCAST); fd_udp=socket(PF_INET, SOCK_DGRAM, 0); if (fd_udp<0) perror("\n UDP socket error "), exit(EXIT_FAILURE); setsockopt(fd_udp, SOL_SOCKET, SO_BROADCAST, &flag, sizeof(flag) ); strcpy(buf, "ALIVE"); n=sendto(fd_udp, buf, strlen(buf), 0, (struct sockaddr *) &broadcast, sizeof(broadcast)); if (n<0) perror("\n errore sendto "), exit(EXIT_FAILURE); return 0; }/*END main*/ --- Quale può essere il problema ? ... :([ Auf dieses Posting antworten ]
