nicknamemohaji / ft_irc

42cursus irc
0 stars 0 forks source link

PRIVMSG Command Flow #12

Closed somilee0202 closed 1 month ago

somilee0202 commented 2 months ago

IRC PRIVMSG 명령어 코딩 시나리오

목적

IRC 프로토콜의 PRIUMSG 명령어를 구현하여 사용자가 개인 메시지를 다른 사용자 또는 채널에 보낼 수 있도록 합니다.

에러 처리

ERR_NOSUCHNICK (401): 존재하지 않는 대상 ERR_NOSUCHCHANNEL (403): 존재하지 않는 채널 ERR_CANNOTSENDTOCHAN (404): 메시지를 채널에 전달할 수 없음 ERR_TOOMANYTARGETS (407): 최대 대상 수 초과 또는 존재하지 않는 대상 포함 ERR_NORECIPIENT (411): 수신자 지정 안됨 ERR_NOTEXTTOSEND (412): 보낼 텍스트 없음 ERR_NOTOPLEVEL (413): 잘못된 채널 이름 ERR_WILDTOPLEVEL (414): 채널 이름에 와일드카드 포함 (413에러로 퉁치기) ERR_AWAY (301): 대상이 자리 비움 (사용X)

코드 진행 순서

1.쉼표로 문자열 파싱 -수신자 지정 안됨 (411) -보낼 텍스트 없음 (412) 2.채널 또는 개인 확인 2-1.단일 상대에게 보낼 때 -채널 이름 형식 검사 (413) -채널 존재 검사: (403) -클라이언트가 채널에 가입되어있는지 검사: (404) -개인 존재 검사: (401) 2-2.다중 대상에게 보낼 때 -(413, 403, 401)에러중 하나라도 해당되면 -> (407) 3.메시지 보내기 -채널: 채널 사용자 확인 후 모두에게 메시지 전송 -개인: 개인에게 메시지 전송

메소드 설명

Server::ParseComma

Server::CheckChannelName

Server::CheckUserInServer

Server::CheckChannelInServer

Server::GetUserListInChannel

주의사항