Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

무승부 처리 로직 #12

Open
sjdok9612 opened this issue May 24, 2021 · 0 comments
Open

무승부 처리 로직 #12

sjdok9612 opened this issue May 24, 2021 · 0 comments
Labels

Comments

@sjdok9612
Copy link
Collaborator

서버쪽의 리시브(수신)에는 if순서로 메세지를 처리한다.
무승부처리를 위해선 W(승리)플래그가 왔을때, 다른 클라이언트도 W플래그를 보내는지 일정시간동안 대기해야한다.

제외한 방법
1.무작정 sleep이나 wait를 넣으면 서버흐름을 걷잡을수없다.
2,그렇다고 소켓을 내려버리면 승리한 이후에 다른 유저가 축하메세지를 보낼수없다. ("ㅊㅊ"을 보내는건 중대사이다.)

일단 리시브의 if와 else순서로 알고리즘을 구현했다.
if (채팅) //채팅은 무조건 실행된다
if ( 지금 수신한게 승리플래그인가? OR 이전에 승리플래그를 받았는가?) {
// 승리플래그가 보내졌을시, 승리플래그와 채팅만 읽도록 리시브가 설정되도록 하기 위함

}
else {
승리플래그가 안보내졌을시
R(레디),N(숫자),S(네임세팅) 을 정상실행한다. (N이 차단되므로 W플래그가 뜨면 게임흐름이 멈춘다)
}

@hhhminme hhhminme added the read label May 26, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants