?
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?