54 lines
805 B
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);
|
|
}
|