diff --git a/main.c b/main.c index b5c2637..514f431 100644 --- a/main.c +++ b/main.c @@ -1,4 +1,6 @@ #include "tsock.h" +#include "puit.h" +#include "source.h" int main (int argc, char **argv) { @@ -43,9 +45,11 @@ int main (int argc, char **argv) if(source) { printf("Source : %d\n",nb_message); + launchSource(); } else { printf("Puit : %d\n",nb_message); + launchPuit(); } } \ No newline at end of file diff --git a/puit.c b/puit.c index 12b57cb..13a348c 100644 --- a/puit.c +++ b/puit.c @@ -1,73 +1,26 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include "puit.h" -#define _OE_SOCKETS -#define PORT_NUM 9000 - -void initSocketAddr(struct sockaddr_in *socketServerTemp, int source); -void creationSocket(int *socketTemp, struct sockaddr_in *socketTempStruct); - - -char buffer[1024]; -struct sockaddr_in socketClient; - -int main(void) +int launchPuit(void) { int sock; - creationSocket(&sock,&socketClient); - initSocketAddr(&socketClient,0); + char buffer[1024]; + struct sockaddr_in socketPuit; - if (bind(sock, (const struct sockaddr *)&socketClient, sizeof(socketClient)) < 0 ) + creationSocket(&sock,&socketPuit); + initSocketAddr(&socketPuit,0); + + if (bind(sock, (const struct sockaddr *)&socketPuit, sizeof(socketPuit)) < 0 ) { perror("bind failed"); exit(EXIT_FAILURE); } int n; - unsigned int lg_socketServer = sizeof(socketClient); + unsigned int lg_socketPuit = sizeof(socketPuit); - n = recvfrom(sock, (char *)buffer, 1024, 0, (struct sockaddr*) &socketClient,&lg_socketServer); + n = recvfrom(sock, (char *)buffer, 1024, 0, (struct sockaddr*) &socketPuit,&lg_socketPuit); buffer[n] = '\0'; printf("Server : %s\n", buffer); close(sock); return 0; -} - -void initSocketAddr(struct sockaddr_in *socketTempStruct, int source) -{ - socketTempStruct->sin_family=AF_INET; - socketTempStruct->sin_port=htons(PORT_NUM); - if(source) - { - struct hostent *hp; - if((hp = gethostbyname("localhost")) == NULL) - { - printf("erreur gethostbyname\n"); - exit(1); - } - memcpy((char*)&(socketTempStruct->sin_addr.s_addr),hp->h_addr_list[0],hp->h_length); - } - else - { - socketTempStruct->sin_addr.s_addr=INADDR_ANY; - - } -} - -void creationSocket(int *socketTemp, struct sockaddr_in *socketTempStruct){ - -if((*socketTemp=socket(AF_INET,SOCK_DGRAM,0)) == -1) - { - printf("échec création du socket\n"); - exit(1); - } - memset(socketTempStruct, 0, sizeof(*socketTempStruct)); - } \ No newline at end of file diff --git a/puit.h b/puit.h new file mode 100644 index 0000000..6831361 --- /dev/null +++ b/puit.h @@ -0,0 +1,7 @@ +#ifndef HEADER_PUIT +#define HEADER_PUIT + +#include "tsock.h" +int launchPuit(void); + +#endif \ No newline at end of file diff --git a/source.c b/source.c index 84ee9f9..c331d15 100644 --- a/source.c +++ b/source.c @@ -1,45 +1,20 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include "source.h" -#define PORT_NUM 9000 - -void initSocket(); - -int sock; -int lg_emis; -struct hostent *hp; -struct sockaddr_in socketClient; - -int main(void) +int launchSource(void) { + int sock; + int lg_emis; + struct hostent *hp; + struct sockaddr_in socketSource; if((sock=socket(AF_INET,SOCK_DGRAM,0)) == -1) { printf("échec création du socket\n"); exit(1); } - memset(&socketClient, 0, sizeof(socketClient)); - initSocket(); - lg_emis=sendto(sock, "aaaaa", 6, 0, (struct sockaddr*)&socketClient, sizeof(socketClient)); + memset(&socketSource, 0, sizeof(socketSource)); + initSocketAddr(&socketSource,1); + lg_emis=sendto(sock, "aaaaa", 6, 0, (struct sockaddr*)&socketSource, sizeof(socketSource)); printf("lgemis = %d\n",lg_emis); close(sock); return 0; -} - -void initSocket() -{ - socketClient.sin_family=AF_INET; - socketClient.sin_port=htons(PORT_NUM); - if((hp = gethostbyname("localhost")) == NULL) - { - printf("erreur gethostbyname\n"); - exit(1); - } - memcpy((char*)&(socketClient.sin_addr.s_addr),hp->h_addr_list[0],hp->h_length); } \ No newline at end of file diff --git a/source.h b/source.h new file mode 100644 index 0000000..fe2dc49 --- /dev/null +++ b/source.h @@ -0,0 +1,7 @@ +#ifndef HEADER_SOURCE +#define HEADER_SOURCE + +#include "tsock.h" +int launchSource(void); + +#endif \ No newline at end of file diff --git a/tsock.c b/tsock.c index 9db2872..1607e05 100644 --- a/tsock.c +++ b/tsock.c @@ -19,4 +19,35 @@ void printInfo(int nb, int source) printf("tsock lance en mode puit, nombre de tampons à recevoir :"); nb != -1 ? printf("%d\n", nb) : printf("infini\n"); } +} + +void initSocketAddr(struct sockaddr_in *socketTempStruct, int source) +{ + socketTempStruct->sin_family=AF_INET; + socketTempStruct->sin_port=htons(PORT_NUM); + if(source) + { + struct hostent *hp; + if((hp = gethostbyname("localhost")) == NULL) + { + printf("erreur gethostbyname\n"); + exit(1); + } + memcpy((char*)&(socketTempStruct->sin_addr.s_addr),hp->h_addr_list[0],hp->h_length); + } + else + { + socketTempStruct->sin_addr.s_addr=INADDR_ANY; + + } +} + +void creationSocket(int *socketTemp, struct sockaddr_in *socketTempStruct) +{ + if((*socketTemp=socket(AF_INET,SOCK_DGRAM,0)) == -1) + { + printf("échec création du socket\n"); + exit(1); + } + memset(socketTempStruct, 0, sizeof(*socketTempStruct)); } \ No newline at end of file diff --git a/tsock.h b/tsock.h index da163c4..d042d0c 100644 --- a/tsock.h +++ b/tsock.h @@ -13,5 +13,10 @@ void setNbMessage(int * nb, int source); void printInfo(int nb, int source); +void initSocketAddr(struct sockaddr_in *socketServerTemp, int source); +void creationSocket(int *socketTemp, struct sockaddr_in *socketTempStruct); + +#define _OE_SOCKETS +#define PORT_NUM 9000 #endif \ No newline at end of file