Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 20 su 20

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    577
    sono su una LAN con dei cisco catalyst 2950 i quali implementano il multicast

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Quote Originariamente inviata da misterx Visualizza il messaggio
    sono su una LAN con dei cisco catalyst 2950 i quali implementano il multicast
    Ok, ma vale la pena solo se si tratta di streaming video o applicazioni simili.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    577
    sono dati rilevati da sensori di temperatura e se il client perde un pacchetto poco importa.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    577
    un dubbio: nel caso del multicast posso sciegliere un indirizzo nel range (224.0.0.0 - 239.255.255.255) ma nel caso di broadcast e per una LAN di classe C avrei una sola possibilità?

    Esempio per LAN di classe C: 192.168.10.255

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Gli indirizzi multicast sono in classe D per la quale non è prevista una maschera in quanto gli indirizzi fanno riferimento ad un "gruppo" non ad un host.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    577
    quindi dovrei acquistare un indirizzo IP di classe D e inviare e ricevere pacchetti da quell'indirizzo?

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Acquistare? Non eri in una LAN ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    577
    si, stavo approfondendo ulteriormente.
    Quindi se desidero inviare/ricevere dati broadcast/multicast devo aprire una socket in un modo particolare?

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    577
    ho trovato questo esempio per spedire messaggi broadcast ma ho un paio di dubbi: se la mia sottorete è 192.168.10.x, uso come indirizzo di broadcast 192.168.10.255 ma la porta?

    codice:
    #include <stdio.h>      /* for printf() and fprintf() */
    #include <sys/socket.h> /* for socket() and bind() */
    #include <arpa/inet.h>  /* for sockaddr_in */
    #include <stdlib.h>     /* for atoi() and exit() */
    #include <string.h>     /* for memset() */
    #include <unistd.h>     /* for close() */
    
    void DieWithError(char *errorMessage);  /* External error handling function */
    
    int main(int argc, char *argv[])
    {
        int sock;                         /* Socket */
        struct sockaddr_in broadcastAddr; /* Broadcast address */
        char *broadcastIP;                /* IP broadcast address */
        unsigned short broadcastPort;     /* Server port */
        char *sendString;                 /* String to broadcast */
        int broadcastPermission;          /* Socket opt to set permission to broadcast */
        unsigned int sendStringLen;       /* Length of string to broadcast */
    
        if (argc < 4)                     /* Test for correct number of parameters */
        {
            fprintf(stderr,"Usage:  %s <IP Address> <Port> <Send String>\n", argv[0]);
            exit(1);
        }
    
        broadcastIP = argv[1];            /* First arg:  broadcast IP address */ 
        broadcastPort = atoi(argv[2]);    /* Second arg:  broadcast port */
        sendString = argv[3];             /* Third arg:  string to broadcast */
    
        /* Create socket for sending/receiving datagrams */
        if ((sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0)
            DieWithError("socket() failed");
    
        /* Set socket to allow broadcast */
        broadcastPermission = 1;
        if (setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (void *) &broadcastPermission, 
              sizeof(broadcastPermission)) < 0)
            DieWithError("setsockopt() failed");
    
        /* Construct local address structure */
        memset(&broadcastAddr, 0, sizeof(broadcastAddr));   /* Zero out structure */
        broadcastAddr.sin_family = AF_INET;                 /* Internet address family */
        broadcastAddr.sin_addr.s_addr = inet_addr(broadcastIP);/* Broadcast IP address */
        broadcastAddr.sin_port = htons(broadcastPort);         /* Broadcast port */
    
        sendStringLen = strlen(sendString);  /* Find length of sendString */
        for (;;) /* Run forever */
        {
             /* Broadcast sendString in datagram to clients every 3 seconds*/
             if (sendto(sock, sendString, sendStringLen, 0, (struct sockaddr *) 
                   &broadcastAddr, sizeof(broadcastAddr)) != sendStringLen)
                 DieWithError("sendto() sent a different number of bytes than expected");
    
            sleep(3);   /* Avoids flooding the network */
        }
        /* NOT REACHED */
    }

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    577
    come non detto, ho trovato la mia risposta qui http://stackoverflow.com/questions/6...oadcast-design

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.