• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

socket 질문드립니다

24.02.17 01:09 작성 조회수 90

0

socket질문2.png1. 그림에서 빨간색 부분은 무슨 기능을 하는 건가요? 출력에도 영향이 없는 거 같아서 질문드립니다

  1. 그림에서 파란색부분에서 클라이언트가 wirte 할 때까지 대기하고 있는 건가요?

  2. 클라이언트 역시 readline을 만나면 서버가 write할 때까지 대기하는 건가요?

 

답변 1

답변을 작성해보세요.

0

서버 소켓이 accept() 후에는 클라이언트가 연결될 때까지 기다립니다. 그리고 클라이언트가 연결되면 클라이언트와 1:1 통신할 내부 소켓이 반환 됩니다. 빨간 부분은 연결 되었을때 생성된 서버의 내부 소켓의 정보를 콘솔창에 로그로 나타내기 위해 적은 내용입니다. 클라이언트가 연결될 때마다 정보가 출력되는 것을 보실 수 있을 겁니다.

readLine은 한 줄을 읽는 것입니다. 소켓은 소켓 버퍼에서 내용을 읽는데.. 내용이 없으면 읽지 않습니다.

위 예제는 클라이언트가 서버와 연결하면서 송신한 내용이 있어서 바로 읽게 됩니다.

채팅과 같은 경우는 while() 문과 같은 반복문을 활용하여 소켓 버퍼에 내용이 들어오게 되는 경우 읽게 구현할 수 있습니다. 소켓의 읽고 쓰는 역할은 클라이언트 서버 모두 동일합니다.