mirror of
https://github.com/yoboujon/tsock.git
synced 2025-06-08 14:00:50 +02:00
IP non demandée pour -p ou -b. Modification sur launchPuit des arguments.
This commit is contained in:
parent
a5180da73f
commit
44ae8aedea
5 changed files with 37 additions and 26 deletions
|
@ -12,11 +12,10 @@
|
||||||
* @param tailleMessage int, la taille de chacun de ces messages.
|
* @param tailleMessage int, la taille de chacun de ces messages.
|
||||||
* @param isTCP int, 1 -> TCP, 0 -> UDP
|
* @param isTCP int, 1 -> TCP, 0 -> UDP
|
||||||
* @param port int, numéro du port
|
* @param port int, numéro du port
|
||||||
* @param ipAddress char *, adresse IP
|
|
||||||
* @param isBAL int, 1-> Mode Boite aux Lettres
|
* @param isBAL int, 1-> Mode Boite aux Lettres
|
||||||
* @return int 0-> si réussite, autre sinon
|
* @return int 0-> si réussite, autre sinon
|
||||||
*/
|
*/
|
||||||
int launchPuit(int nombreMessage,int tailleMessage,int isTCP,int port,char * ipAddress,int isBAL);
|
int launchPuit(int nombreMessage,int tailleMessage,int isTCP,int port,int isBAL);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Pour un nombre de message donné (-1 -> infini) recevra des messages avec une taille précise.
|
* @brief Pour un nombre de message donné (-1 -> infini) recevra des messages avec une taille précise.
|
||||||
|
@ -24,12 +23,12 @@ int launchPuit(int nombreMessage,int tailleMessage,int isTCP,int port,char * ipA
|
||||||
* Dans le cas d'UDP si nombreMessage = -1 (infini) écoutera à l'infini la source. Pour TCP fermera la connexion
|
* Dans le cas d'UDP si nombreMessage = -1 (infini) écoutera à l'infini la source. Pour TCP fermera la connexion
|
||||||
* une fois la connexion finie [A améliorer].
|
* une fois la connexion finie [A améliorer].
|
||||||
*
|
*
|
||||||
* @param nombreMessages
|
* @param nombreMessage int, le nombre de message à envoyer.
|
||||||
* @param tailleMessage
|
* @param tailleMessage int, la taille de chacun de ces messages.
|
||||||
* @param sock
|
* @param sock int, socket premettant d'utiliser la primitive readRecvFrom().
|
||||||
* @param socketStruct
|
* @param socketStruct struct sockaddr_in , la structure du socket.
|
||||||
* @param isTCP
|
* @param isTCP int, 1 -> TCP, 0 -> UDP.
|
||||||
* @return int
|
* @return int 0 si réussi.
|
||||||
*/
|
*/
|
||||||
int receiveMultipleData(int nombreMessages, int tailleMessage, int sock, struct sockaddr_in socketStruct, int isTCP);
|
int receiveMultipleData(int nombreMessages, int tailleMessage, int sock, struct sockaddr_in socketStruct, int isTCP);
|
||||||
|
|
||||||
|
|
|
@ -69,8 +69,9 @@ void initStructSocket(struct sockaddr_in *socketTempStruct, int source, int port
|
||||||
* @param argc int, nombre d'arguments (IP -> argc-1 et Port -> argc-2)
|
* @param argc int, nombre d'arguments (IP -> argc-1 et Port -> argc-2)
|
||||||
* @param portNumber int *, numéro du port retourné
|
* @param portNumber int *, numéro du port retourné
|
||||||
* @param ipAddress char **, pointeur faire une chaîne de caractère de l'adresse ip retournée
|
* @param ipAddress char **, pointeur faire une chaîne de caractère de l'adresse ip retournée
|
||||||
|
* @param portOnly bool, mode portOnly pour -s ou -b
|
||||||
*/
|
*/
|
||||||
void getNonOtpArgs(char ** argv, int argc, int * portNumber, char * ipAddress[]);
|
void getNonOtpArgs(char ** argv, int argc, int * portNumber, char * ipAddress[], bool portOnly);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief [utile pour source.c] à partir d'un numéro, d'un message et d'une taille
|
* @brief [utile pour source.c] à partir d'un numéro, d'un message et d'une taille
|
||||||
|
|
22
src/main.c
22
src/main.c
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
int main (int argc, char **argv)
|
int main (int argc, char **argv)
|
||||||
{
|
{
|
||||||
char usageChar[100]="usage: cmd [-p|-s]|[-u][-u|-r ##|-e ##|-b][-n ##][-l ##] port ipAdress\n";
|
char usageChar[100]="usage: cmd [-p|-s][-u]|[-u|-r ##|-e ##|-b][-n ##][-l ##] port ipAdress\n";
|
||||||
//testProtocol();
|
//testProtocol();
|
||||||
//bal();
|
//bal();
|
||||||
char *ipAddress;
|
char *ipAddress;
|
||||||
|
@ -71,25 +71,29 @@ int main (int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (source == -1) {
|
bool serverMode = (isBAL || source==0);
|
||||||
|
if (source == -1){
|
||||||
printf("-p|-s non present !\n");
|
printf("-p|-s non present !\n");
|
||||||
printf("%s",usageChar);
|
printf("%s",usageChar);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
if(argc != optind+2)
|
if((argc != optind+1) && serverMode){
|
||||||
{
|
printf("ip non present !\n");
|
||||||
|
printf("%s",usageChar);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
else if((argc != optind+2) && !serverMode){
|
||||||
printf("ip ou port non present !\n");
|
printf("ip ou port non present !\n");
|
||||||
printf("%s",usageChar);
|
printf("%s",usageChar);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(tailleMessage == -1)
|
if(tailleMessage == -1){
|
||||||
{
|
|
||||||
tailleMessage = 30;
|
tailleMessage = 30;
|
||||||
}
|
}
|
||||||
getNonOtpArgs(argv, argc, &port, &ipAddress);
|
getNonOtpArgs(argv, argc, &port, &ipAddress, serverMode);
|
||||||
setNbMessage(&nb_message,source);
|
setNbMessage(&nb_message,source);
|
||||||
printInfo(source,tcp,nb_message,tailleMessage,port,ipAddress);
|
serverMode ? printInfo(source,tcp,nb_message,tailleMessage,port,"non precise") : printInfo(source,tcp,nb_message,tailleMessage,port,ipAddress);
|
||||||
|
|
||||||
if(source)
|
if(source)
|
||||||
{
|
{
|
||||||
|
@ -97,7 +101,7 @@ int main (int argc, char **argv)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
launchPuit(nb_message,tailleMessage,tcp,port,ipAddress,isBAL);
|
launchPuit(nb_message,tailleMessage,tcp,port,isBAL);
|
||||||
}
|
}
|
||||||
return(EXIT_SUCCESS);
|
return(EXIT_SUCCESS);
|
||||||
}
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
#include "../header/puit.h"
|
#include "../header/puit.h"
|
||||||
|
|
||||||
int launchPuit(int nombreMessage,int tailleMessage,int isTCP,int port,char * ipAddress,int isBAL)
|
int launchPuit(int nombreMessage,int tailleMessage,int isTCP,int port,int isBAL)
|
||||||
{
|
{
|
||||||
int sock,socketType;
|
int sock,socketType;
|
||||||
struct sockaddr_in socketPuit;
|
struct sockaddr_in socketPuit;
|
||||||
|
@ -11,11 +11,11 @@ int launchPuit(int nombreMessage,int tailleMessage,int isTCP,int port,char * ipA
|
||||||
if(isBAL)
|
if(isBAL)
|
||||||
{
|
{
|
||||||
printf("Mode Boîte aux Lettres\n");
|
printf("Mode Boîte aux Lettres\n");
|
||||||
modeBoiteAuxLettres(socketPuit,SOCK_STREAM,port,ipAddress);
|
modeBoiteAuxLettres(socketPuit,SOCK_STREAM,port,"localhost");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/*Sinon on initialise le socket de base et on rentre dans receiveMultipleData() -> on ferme le socket avant*/
|
/*Sinon on initialise le socket de base et on rentre dans receiveMultipleData() -> on ferme le socket avant*/
|
||||||
sock = initSocket(socketType,&socketPuit,port,ipAddress);
|
sock = initSocket(socketType,&socketPuit,port,"localhost");
|
||||||
receiveMultipleData(nombreMessage,tailleMessage,sock,socketPuit,isTCP);
|
receiveMultipleData(nombreMessage,tailleMessage,sock,socketPuit,isTCP);
|
||||||
close(sock);
|
close(sock);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -56,12 +56,19 @@ void initStructSocket(struct sockaddr_in *socketTempStruct, int source, int port
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void getNonOtpArgs(char ** argv, int argc, int * portNumber, char ** ipAddress)
|
void getNonOtpArgs(char ** argv, int argc, int * portNumber, char * ipAddress[], bool portOnly)
|
||||||
{
|
{
|
||||||
|
if(portOnly)
|
||||||
|
{
|
||||||
|
*portNumber = atoi(argv[argc-1]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
*portNumber = atoi(argv[argc-2]);
|
*portNumber = atoi(argv[argc-2]);
|
||||||
*ipAddress = NULL;
|
*ipAddress = NULL;
|
||||||
*ipAddress = (char *)malloc(sizeof(argv[argc-1]));
|
*ipAddress = (char *)malloc(sizeof(argv[argc-1]));
|
||||||
strcpy(*ipAddress,argv[argc-1]);
|
strcpy(*ipAddress,argv[argc-1]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void formatText(char * actualMessage, int num, int tailleMessage, char messageChar)
|
void formatText(char * actualMessage, int num, int tailleMessage, char messageChar)
|
||||||
|
|
Loading…
Add table
Reference in a new issue