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 isTCP int, 1 -> TCP, 0 -> UDP
|
||||
* @param port int, numéro du port
|
||||
* @param ipAddress char *, adresse IP
|
||||
* @param isBAL int, 1-> Mode Boite aux Lettres
|
||||
* @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.
|
||||
|
@ -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
|
||||
* une fois la connexion finie [A améliorer].
|
||||
*
|
||||
* @param nombreMessages
|
||||
* @param tailleMessage
|
||||
* @param sock
|
||||
* @param socketStruct
|
||||
* @param isTCP
|
||||
* @return int
|
||||
* @param nombreMessage int, le nombre de message à envoyer.
|
||||
* @param tailleMessage int, la taille de chacun de ces messages.
|
||||
* @param sock int, socket premettant d'utiliser la primitive readRecvFrom().
|
||||
* @param socketStruct struct sockaddr_in , la structure du socket.
|
||||
* @param isTCP int, 1 -> TCP, 0 -> UDP.
|
||||
* @return int 0 si réussi.
|
||||
*/
|
||||
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 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 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
|
||||
|
|
22
src/main.c
22
src/main.c
|
@ -5,7 +5,7 @@
|
|||
|
||||
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();
|
||||
//bal();
|
||||
char *ipAddress;
|
||||
|
@ -71,25 +71,29 @@ int main (int argc, char **argv)
|
|||
break;
|
||||
}
|
||||
}
|
||||
if (source == -1) {
|
||||
bool serverMode = (isBAL || source==0);
|
||||
if (source == -1){
|
||||
printf("-p|-s non present !\n");
|
||||
printf("%s",usageChar);
|
||||
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("%s",usageChar);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if(tailleMessage == -1)
|
||||
{
|
||||
if(tailleMessage == -1){
|
||||
tailleMessage = 30;
|
||||
}
|
||||
getNonOtpArgs(argv, argc, &port, &ipAddress);
|
||||
getNonOtpArgs(argv, argc, &port, &ipAddress, serverMode);
|
||||
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)
|
||||
{
|
||||
|
@ -97,7 +101,7 @@ int main (int argc, char **argv)
|
|||
}
|
||||
else
|
||||
{
|
||||
launchPuit(nb_message,tailleMessage,tcp,port,ipAddress,isBAL);
|
||||
launchPuit(nb_message,tailleMessage,tcp,port,isBAL);
|
||||
}
|
||||
return(EXIT_SUCCESS);
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
#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;
|
||||
struct sockaddr_in socketPuit;
|
||||
|
@ -11,11 +11,11 @@ int launchPuit(int nombreMessage,int tailleMessage,int isTCP,int port,char * ipA
|
|||
if(isBAL)
|
||||
{
|
||||
printf("Mode Boîte aux Lettres\n");
|
||||
modeBoiteAuxLettres(socketPuit,SOCK_STREAM,port,ipAddress);
|
||||
modeBoiteAuxLettres(socketPuit,SOCK_STREAM,port,"localhost");
|
||||
return 0;
|
||||
}
|
||||
/*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);
|
||||
close(sock);
|
||||
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]);
|
||||
*ipAddress = NULL;
|
||||
*ipAddress = (char *)malloc(sizeof(argv[argc-1]));
|
||||
strcpy(*ipAddress,argv[argc-1]);
|
||||
}
|
||||
}
|
||||
|
||||
void formatText(char * actualMessage, int num, int tailleMessage, char messageChar)
|
||||
|
|
Loading…
Add table
Reference in a new issue