Files
42_INT_05_minitalk/srcs/client.c

54 lines
805 B
C

#include "client.h"
int usage(void)
{
ft_printf("usage: ./client [server pid] [message]\n");
return (0);
}
void send_char(int server_pid, char c)
{
int mask;
mask = 1 << 6;
while (mask != 0)
{
if (msg_received == 1)
{
if ((c & mask) != 0)
kill(server_pid, SIGUSR1);
if ((c & mask) == 0)
kill(server_pid, SIGUSR2);
msg_received = 0;
mask >>= 1;
}
}
}
void send_message(int server_pid, char *msg)
{
while (*msg)
{
send_char(server_pid, *msg);
msg++;
}
send_char(server_pid, *msg);
}
void message_received(int sig_num)
{
(void)sig_num;
msg_received = 1;
}
int main(int ac, char **av)
{
signal(SIGUSR1, message_received);
if (ac != 3)
return (usage());
msg_received = 1;
ft_putnbrendl((int)getpid());
send_message(ft_atoi(av[1]), av[2]);
return (0);
}