Programme multicast en C sous unix
superoot23
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
superoot23 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
superoot23 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Programme multicast en C sous unix
- Comment mettre en veille un programme sous windows 10 - Guide
- Programme demarrage windows - Guide
- Message programmé iphone - Guide
- Programme word gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide