profile
늅늅

[mini_talk] mini_talk 구현

Mini_talk > 클라이언트가 서버로 문자열을 전송하면 서버에서 해당 문자열을 출력하도록 하는 프로그램을 만들어보는 프로젝트 UNIX의 signal을 활용하여 제작 구현방법 > 서버가 실행되면 서버의 pid(getpid())를 출력하고 signal(signal())함수를 사용해 시그널을 받기위해 대기(pause()) 클라이언트 실행시 서버의 pid와 보낼 메시지를 받으며 시작 클라이언트는 보낼 메시지의 문자 하나하나의 아스키코드값을 2진수로 변환 변환한 2진수값 하나하나를 kill(kill())함수를 사용해 서버로 시그널을 전송 SIGUSR1시그널은 2진수의 0, SIGUSR2시그널은 1로 간주하여 일정 시간텀을 두고 서버로 전송 서버는 수신한 시그널을 8번(1byte = 8bit)마다 끊어 2진수로 받은 뒤 10진수로 변환하여 문자의 아스키코드를 바탕으로 출력 Server > main함수 getpid

2022년 7월 5일
·
0개의 댓글
·

signal() 사용해 SIGUSR1 signal 주고받기

클라이언트가 서버로 문자열을 전송하면 서버에서 해당 문자열을 출력하도록 하는 프로그램을 만들어보는 프로젝트 UNIX의 signal을 활용하여 제작 서버 클라이언트 signal(int signal,void (*)(int)) > 특정한 시그널을 수신하면 정해진 함수를 실행해주는 함수 signal(SIGUSR1, sig_usr1); SIGUSR1 시그널을 수신하게되면 sig_usr1함수를 실행 kill(pid_t pid, int sig) > pid는 시그널을 받을 특정 프로세스 또는 그룹의 pid > pid > 0 pid에 대응되는 프로세스에 시그널을 보낸다. pid == 0 현재프로세스에 속한 모든 그룹의 프로세스에 시그널을 보낸다. pid == -1 1번 프로세스 (init) 를 제외한 모든 프로세스에 시그널을 보낸다. pid  어떤

2022년 6월 29일
·
0개의 댓글
·

[mini_talk] mini_talk이란?

Mini_talk > 클라이언트가 서버로 문자열을 전송하면 서버에서 해당 문자열을 출력하도록 하는 프로그램을 만들어보는 프로젝트 UNIX의 signal을 활용하여 제작 mandatory > 서버가 먼저 실행되고 클라이언트가 실행되어야하며 실행 후 서버의 PID가 출력 클라이언트 실행시 서버의 PID와 전송할 문자열을 매개변수로 받음 클라이언트는 매개변수로 전달받은 문자열을 서버로 전송해야하며 서버는 받은 문자열을 출력해줘야함 서버와 클라이언트간의 통신은 반드시 UNIX의 signal을 사용해야함 서버는 문자열을 매우 빠른 시간안에 표시해야함 서버는 재시작할 필요없이 여러 클라이언트로부터 문자열을 연속으로 수신할 수 있어야함 SIGUSR1과 SIGUSR2 두 신호만을 사용해야함 bonus > 유니코드를 지원해아함 소규모 수신확인 서비스를 제공해야함 (ack)

2022년 6월 22일
·
0개의 댓글
·