la communication fonctionne avec signal
This commit is contained in:
BIN
builds/client.o
BIN
builds/client.o
Binary file not shown.
BIN
builds/server.o
BIN
builds/server.o
Binary file not shown.
@@ -1,5 +1,4 @@
|
|||||||
#include "../includes/minitalk.h"
|
#include "../includes/minitalk.h"
|
||||||
#include <stdlib.h> //for atoi
|
|
||||||
|
|
||||||
int usage(void)
|
int usage(void)
|
||||||
{
|
{
|
||||||
@@ -18,9 +17,8 @@ void send_char(int server_pid, char c)
|
|||||||
if ((c & mask) == 0)
|
if ((c & mask) == 0)
|
||||||
kill(server_pid, SIGUSR2);
|
kill(server_pid, SIGUSR2);
|
||||||
mask >>= 1;
|
mask >>= 1;
|
||||||
usleep(300);
|
usleep(20);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void send_message(int server_pid, char *msg)
|
void send_message(int server_pid, char *msg)
|
||||||
@@ -31,30 +29,6 @@ void send_message(int server_pid, char *msg)
|
|||||||
msg++;
|
msg++;
|
||||||
}
|
}
|
||||||
send_char(server_pid, *msg);
|
send_char(server_pid, *msg);
|
||||||
|
|
||||||
// if (!ft_strcmp(msg, "SIGUSR1"))
|
|
||||||
// kill(server_pid, SIGUSR1);
|
|
||||||
// if (!ft_strcmp(msg, "SIGUSR2"))
|
|
||||||
// kill(server_pid, SIGUSR2);
|
|
||||||
|
|
||||||
// int mask;
|
|
||||||
// mask = 1 << 6;
|
|
||||||
// char character;
|
|
||||||
// character = 'c';
|
|
||||||
// ft_printf("%c %i\n", character, character, mask);
|
|
||||||
// while (mask != 0)
|
|
||||||
// {
|
|
||||||
// ft_putchar('\n');
|
|
||||||
// ft_putnbrbase(character, "01");
|
|
||||||
// ft_putchar('\n');
|
|
||||||
// ft_putnbrbase(mask, "01");
|
|
||||||
// ft_putchar('\n');
|
|
||||||
// if ((character & mask) != 0)
|
|
||||||
// ft_putchar('1');
|
|
||||||
// if ((character & mask) == 0)
|
|
||||||
// ft_putchar('0');
|
|
||||||
// mask >>= 1;
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int ac, char **av)
|
int main(int ac, char **av)
|
||||||
|
|||||||
@@ -20,14 +20,8 @@ void init_message(void)
|
|||||||
message.text = ft_strdup("");
|
message.text = ft_strdup("");
|
||||||
}
|
}
|
||||||
|
|
||||||
int main()
|
void concat_msg()
|
||||||
{
|
{
|
||||||
signal(SIGUSR1, sig_handler_1);
|
|
||||||
signal(SIGUSR2, sig_handler_2);
|
|
||||||
ft_putnbrendl((int)getpid());
|
|
||||||
init_message();
|
|
||||||
while (1)
|
|
||||||
{
|
|
||||||
if (message.count_bits == 7)
|
if (message.count_bits == 7)
|
||||||
{
|
{
|
||||||
if (message.character == 0)
|
if (message.character == 0)
|
||||||
@@ -40,12 +34,20 @@ int main()
|
|||||||
message.count_bits = 0;
|
message.count_bits = 0;
|
||||||
message.character = 0;
|
message.character = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
signal(SIGUSR1, sig_handler_1);
|
||||||
|
signal(SIGUSR2, sig_handler_2);
|
||||||
|
ft_putnbrendl((int)getpid());
|
||||||
|
init_message();
|
||||||
|
while (1)
|
||||||
|
concat_msg();
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
**
|
|
||||||
** allowed functions :
|
** allowed functions :
|
||||||
** - write
|
** - write
|
||||||
** - signal
|
** - signal
|
||||||
@@ -61,6 +63,15 @@ int main()
|
|||||||
** - usleep
|
** - usleep
|
||||||
** - exit
|
** - exit
|
||||||
**
|
**
|
||||||
|
**
|
||||||
|
** cmm
|
||||||
|
** deii
|
||||||
|
** enlc
|
||||||
|
** ctlr
|
||||||
|
** iiio
|
||||||
|
** 0.0010
|
||||||
|
** 10
|
||||||
|
**
|
||||||
** you can only use two signals :
|
** you can only use two signals :
|
||||||
** - SIGUSR1
|
** - SIGUSR1
|
||||||
** - SIGUSR2
|
** - SIGUSR2
|
||||||
|
|||||||
Reference in New Issue
Block a user