멀티스레드 기반 서버 관련 질문..!
안녕하세요 널널한 개발자님, 덕분에 수업 잘 듣고 있습니다. :)
현재 멀티스레드 채팅 클라이언트, 서버 기반 수업을 듣고 해당 구조를 변경해서 작은 빙고 게임을 만들어 보고 있습니다.
해당 게임의 큰 틀을 짧게 요약하자면
클라 - 연결 요청 -> 서버 - 확인 후 번호 전달
3번째 클라 - 연결 요청 -> 서버 - 확인 후 모든 클라에게 보드판 및 게임 순서를 전달
클라 - 게임 순서에 맞는 클라가 빙고판 번호를 입력 -> 서버 - 확인 후 보드판 정보 업데이트 및 다시 모든 클라에게 전달 ....
이런 식으로 게임이 진행됩니다, 2번 동작까지는 잘 진행이 되는데 '문제'는 3번 순서에서 클라가 빙고판 번호를 입력했을 때 서버로 전달이 되지 않아 보드판 정보 업데이트가 되지 않고 있습니다..
클라에서 서버로 메시지를 전달할 때 버퍼의 내용은 문제가 없었는데, 이상하게 서버로 전달만 하면 빈 버퍼가 전달이 되네요..
혹시나 서버 버퍼에서 소켓 입출력 버퍼가 Nagle 알고리즘에 의해 서버 프로세스로 전달이 되지 않은 건가 싶어서 소켓의 TCP_NODELAY 옵션도 설정해보았는데, 해결이 되지 않았습니다. whireShark를 이용해서 확인을 하고 있긴 한데, 아직 제 수준에서는 내용을 파악하기 힘드네요..
널널한 개발자님이라면 이런 상황에서 어떻게 문제를 해결하실 건가요??
Answer 2
1
스스로 답을 찾으셨군요. 다행입니다. 😄
내용을 봤을 때 사소한 실수가 있었지 않았을까 생각하긴 했었습니다. 네트워크 프로그래밍 시 발생하는 문제는 클라이언트/서버 양쪽을 모두 확인해야 합니다. 잘못 보내는 문제 일 수 있고 반대로 잘 받지 못하는 문제일 수도 있기 때문입니다. 이 경험을 잘 살려두시면 좋을 것 같네요.
0
이유 찾았네요 send할 때 사이즈를 strlen()으로 잘라서 빙고 숫자 데이터가 전달되지 않았었네요. sizeof()로 크게 잘라내서 보내니깐 데이터가 잘 전달됩니당
recv, send 리턴값 질문
0
77
2
스타,워크와 같은 디스창 (Disconnected)도 비정상 종료에 대응하는 시스템으로 봐야할까요?
0
96
2
수업과 관련해서 읽어볼 만한 책 있나요?
0
111
1
서버가 끊어버리는것에 대한 질문
0
121
2
TCP 의도적 장애 테스트 질문
0
159
2
shutdown()을 호출하는 이유
0
165
1
프로토콜이 적용된 파일 송신 서버에서 send, recv 질문 있습니다!
0
153
2
"파일 송신 서버 제작" 강의 질문입니다!
0
151
2
대표적인 장애 유현 2
0
131
2
대표적인 TCP 장애 유현
0
161
2
이벤트 기반 파일 입출력과 callback 기반 파일 입출력이 네트워크에도 쓰이는 기법인가요?
0
121
2
개발환경 질문이 있습니다.
0
137
1
TCP/IP vs UDP , 멀티 스레드에서의 병목 현상에 대한 질문이 있습니다!
0
221
2
메모리 관련 문제로 질문드립니다.
0
187
2
테스트 환경 질문드립니다!
0
168
2
ThreadAcceptLoop 의 우아한(?) 종료에 대해 질문드립니다.
0
419
2
하트비트 시 서버에서의 연결 종료
0
451
2
강사님 질문 드립니다.
0
249
1
소켓 입/출력 설계 정리
0
450
1
빅 엔디언과 리틀 엔디언
0
378
2
TIME_WAIT 관련 문의드립니다.
0
226
1
강사님 강의자료 인쇄용으로 부탁드립니다.
0
288
1
bind 함수 관련 궁금증
0
357
2
스마트포인터 사용여부 및 가능성
0
260
2

