Broadcast message versenden



  • Mein momentaner Code:

    void make_socket2()
    {
    	int sockfd;
        struct sockaddr_in their_addr; // connector's address information
        struct hostent *he;
        int numbytes;
        int broadcast = 1;
    	char sendnumber[32];
    char szMyIPAddr[32];
    
    	sockfd = socket(AF_INET, SOCK_DGRAM, 0); //SO_BROADCAST
    
    	if (setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, &broadcast,
            sizeof broadcast) == -1) {
            perror("setsockopt (SO_BROADCAST)");
            exit(1);
        }
    
    	their_addr.sin_family = AF_INET;     // host byte order
        their_addr.sin_port = htons(SERVER_PORT); // short, network byte order
        their_addr.sin_addr = *((struct in_addr *)he->h_addr);
        memset(their_addr.sin_zero, '\0', sizeof their_addr.sin_zero);
    
    	//sprintf(sendnumber, "%s", szMyIPAddr);
    
    	numbytes=sendto(sockfd, szMyIPAddr, strlen(szMyIPAddr), 0,
                 (struct sockaddr *)&their_addr, sizeof their_addr);
    
    			 close(sockfd);
    
    }
    

    Ich möchte einfach die IP des Systems, die in szMyIPAddr gespeichert ist, als Broadcast verteilen, der Client im Netzwerk empfängt die Nachricht und verbindet sich.
    Allerdings funktioniert der Code nicht, das Programm stürzt einfach ab. Weiß jemand warum?


Anmelden zum Antworten