You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[1]서버 UI 구현문제
서버코드와 클라이언트 코드는 구조적으로 다른데,
-클라이언트코드는 detach가 main바로 아래 있고,
-서버코드는 detach가 main아래의 while "안"에 있다.
(1)메인이 독립시킨 쓰레드가 정상작동하는지 확인하고 싶어서 printf("sended");라는 디버그 문장을 넣는다고 하자.
(2)클라이언트 쪽에서는 쓰레드의 while문이 돌때마다 sended라는 문장이 정상 출력된다.
(3)그러나 서버쪽에서는 main의 while이 계속 돌아가느라 송수신 쓰레드안에 어떤 문장을 넣든 표시가 안된다!(접속한 클라이언트의 IP가 차례대로 나오게 하는 것 이외의 출력을 할수가 없다)
(4)이는 작동에는 문제가 없으나, 서버쪽의 UI구현에 큰 장벽이다.
이를 위해 서버쪽에 현재 접속한 클라이언트의 정보를 저장할 공간을 만들고,
printUI() // 접속한 클라이언트, 현재 채팅버퍼, 레디상황, 게임진행상황을 표시한다// 와 같은 함수를 추가한다.
[2]127.0.0.1 로컬문제
시험삼아서 서버쪽에서 수신관련된 구문을 싹 밀어버리고 실행했는데... 클라이언트 가 1명일때는 혼자 보내고 받고 다할수 있었다.
당장의 큰문제는 아니지만 디버깅 과정에서 골치다. 빨리 기초를 다지고 bridged환경을 만들어야 한다.
The text was updated successfully, but these errors were encountered:
자고일어나면 기억안날까봐 쓰는 계획도
1:client의 read쓰레드가 채팅일경우 문자열앞에c를붙이고, 게임참여일경우g,턴제어일경우 t를 붙이는 식으로 제어
2:서버의 채팅내역에 클라이언트이름과 내역을 함께 저장
3.서버의 read내부에 game_check과 dont_foul을 만들어서, 현재접속한 클라이언트가 모두 ready했어야 게임을 시작하고, 자기턴이 아닌데 빙고체크를 보냈을경우 무시하도록 설정(클라이언트 본인도 숫자를 서버로 보낸뒤 에코를 받아야(게임판을 수정하는 부분이 [클라이언트-리시브]에 있음) 자기 게임판에 적용할수 있으므로 반칙방치)
4.game_check는 모두가 레디하면 0으로 초기화됌. 이후에는 빙고내역을 하나씩 받으면서 무승부구현에 활용
[1]서버 UI 구현문제
서버코드와 클라이언트 코드는 구조적으로 다른데,
-클라이언트코드는 detach가 main바로 아래 있고,
-서버코드는 detach가 main아래의 while "안"에 있다.
(1)메인이 독립시킨 쓰레드가 정상작동하는지 확인하고 싶어서 printf("sended");라는 디버그 문장을 넣는다고 하자.
(2)클라이언트 쪽에서는 쓰레드의 while문이 돌때마다 sended라는 문장이 정상 출력된다.
(3)그러나 서버쪽에서는 main의 while이 계속 돌아가느라 송수신 쓰레드안에 어떤 문장을 넣든 표시가 안된다!(접속한 클라이언트의 IP가 차례대로 나오게 하는 것 이외의 출력을 할수가 없다)
(4)이는 작동에는 문제가 없으나, 서버쪽의 UI구현에 큰 장벽이다.
이를 위해 서버쪽에 현재 접속한 클라이언트의 정보를 저장할 공간을 만들고,
printUI() // 접속한 클라이언트, 현재 채팅버퍼, 레디상황, 게임진행상황을 표시한다// 와 같은 함수를 추가한다.
[2]127.0.0.1 로컬문제
시험삼아서 서버쪽에서 수신관련된 구문을 싹 밀어버리고 실행했는데... 클라이언트 가 1명일때는 혼자 보내고 받고 다할수 있었다.
당장의 큰문제는 아니지만 디버깅 과정에서 골치다. 빨리 기초를 다지고 bridged환경을 만들어야 한다.
The text was updated successfully, but these errors were encountered: