Programme multicast en C sous unix

Fermé
superoot23 Messages postés 2 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 14 février 2008 - 11 févr. 2008 à 17:20
superoot23 Messages postés 2 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 14 février 2008 - 14 févr. 2008 à 13:17
bonjour,
j'ai un petit soucis dans mon code lors de la compilation et je ne comprend pas l'erreur.
c'est un code de diffusion multicast sous unix (j'utilise une version Ubuntu).
voici le code :

#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>


struct in_addr localInterface;
struct sockaddr_in groupSock;
int sd;
int datalen;
char databuf[1024];

int main (int argc, char *argv[])
{
sd = socket(AF_INET, SOCK_DGRAM, 0);
if (sd < 0) {
perror("opening datagram socket");
exit(1);
}

memset((char *) &groupSock, 0, sizeof(groupSock));
groupSock.sin_family = AF_INET;
groupSock.sin_addr.s_addr = inet_addr("225.1.1.1");
groupSock.sin_port = htons(5555);

{
char loopch=0;

if (setsockopt(sd, IPPROTO_IP, IP_MULTICAST_LOOP,
(char *)&loopch, sizeof(loopch)) < 0) {
perror("setting IP_MULTICAST_LOOP:");
close(sd);
exit(1);
}
}
localInterface.s_addr = inet_addr("9.5.1.1");
if (setsockopt(sd, IPPROTO_IP, IP_MULTICAST_IF,
(char *)&localInterface,
sizeof(localInterface)) < 0) {
perror("setting local interface");
exit(1);
}
datalen = 10;
if (sendto(sd, databuf, datalen, 0,
(struct sockaddr*)&groupSock,
sizeof(groupSock)) < 0)
{
perror("sending datagram message");
}

et voici l'erreur après lors de la compilation avec gcc :
Dans la fonction «main» :
23: attention : incompatible implicit declaration of built-in function «memset»

Savez vous pourquoi cette erreur ?
avez vous une solution ?
d'avance, merci

2 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
11 févr. 2008 à 18:37
Salut,

pour memset il faut utiliser
#include <string.h> 
0
superoot23 Messages postés 2 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 14 février 2008
14 févr. 2008 à 13:17
merci
par contre j'ai une autre question :
je voudrais que l'utilisateur puisse saisir lui même l'adresse multicast avec la fonction scanf par exemple
dans quel type de variable pourrais-je stocker cette adresse ?
0