<p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">IT에 입문한지 얼마 안 된 프로그램 초보입니다. </font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">책을 보고 있는데 헛갈리는 부분이 있어 질문 드립니다. </font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">카카오톡 같은 다중 채팅 프로그램을 만들려고 하고 있습니다.</font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">책을 보면</font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">[별 문제가 없으면 서버는 연결 요청을 받아들이고 새로운 포트 번호를 가지는 새로운 소켓을 만든다. </font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">이후부터는 새로 만든 소켓을 이용해 서버와 클라이언트트 통신 할 수 있다] 라고 되어 있습니다.</font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2"><br></font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">그런데</font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">[ 클라이언트A <-> 서버 <-> 클라이언트B ]의 통신에서 의문이 생깁니다.</font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">프로그램의 순서를 보면,</font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">1. ServerSocket ss = new ServerSocket(8000); </font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">서버 측은 소켓a를 만들어 놓고 8000번 포트로 접속이 오기까지 기다립니다.</font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">2. 이때 클라이언트 A가 자신의 소켓을 만들고 서버측 8000번 포트로 접속을 요청합니다.</font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">3. Server sock = ss.accept() </font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">서버 측의 소켓 a는 클라이언트 A의 접속 요청을 확인하고 새로운 소켓b를 만들어 클라이언트A의 소켓과 통신 합니다.</font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">4. 서버측의 소켓 a는 새로운 접속을 기다립니다.</font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">5. 클라이언트 B가 자신의 소켓을 만들고 서버측 8000번 포트로 접속을 요청합니다.</font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">6. 서버 측의 소켓 a는 새로운 접속을 확인하고 새로운 소켓 c를 생성하여 클라이언트 B의 소켓과 연결합니다.</font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2"><br></font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">이걸 간단하게 보면</font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">서버측 소켓 a = 연결 요청 대기</font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">서버측 소켓 b <-> 클라이언트 A의 소켓</font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">서버측 소켓 c <-> 클라이언트 B의 소켓</font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">이렇게 볼 수 있는데 이 상태에서 클라이언트 A와 B가 어떻게 서버를 거쳐서 통신 할 수 있는지 모르겠습니다.</font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2"><br></font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">제 해석이 맞다면 통신은 불가능합니다.</font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">서버 측의 소켓 b와 c는... 서로 다른 소켓이니까요...</font></p> <p class="pre" style="margin:0px 0px 18px;line-height:24px;"><font face="맑은 고딕" size="2">제가 이해 한 것이 맞는건지 모르겠습니다... 지적 부탁드립니다..</font></p>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.