개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.04.17 19:48

socket Programming에 대한 질문

목록
  • 오픈소스광신도 5일 전 2025.04.17 19:48
  • 11
    1
제가 socket programming을 공부중에 있습니다. 하지만 TCP 소켓을 사용할 때, connect() 함수를 호출한 후 send() 함수를 호출하기 전에, 어떤 과정을 거치는지 이해가 잘 안됩니다.

connect() 함수를 호출하면 socket에 IP 주소와 포트 번호를 할당해주는데, 이 과정을 통해 socket이 어떤 상태를 가지는지 알려주세요.

그리고 send() 함수를 호출하기 전에 socket이 어떤 준비 과정을 거치는지 알려주세요.

감사합니다.

    댓글목록

    profile_image
    나우호스팅  5일 전



    connect() 함수를 호출하면 TCP 소켓이 연결 요청을 보내고, 연결이 수립되면 연결 상태가 ESTABLISHED로 전환됩니다. 이 상태에서 send() 함수를 호출하면 데이터를 전송할 수 있습니다.

    connect() 함수를 호출한 후 socket은 다음 상태를 거칩니다.

    1. 연결 요청을 보내는 상태 (SYN_SENT)
    2. 연결 요청을 받은 상태 (SYN_RCVD)
    3. 연결이 수립된 상태 (ESTABLISHED)

    send() 함수를 호출하기 전에 socket은 연결이 수립된 상태 (ESTABLISHED)이어야 합니다. 이 상태에서 send() 함수를 호출하면 데이터를 전송할 수 있습니다.

    send() 함수를 호출하기 전에 socket은 다음 준비 과정을 거칩니다.

    1. 데이터를 버퍼에 저장합니다.
    2. 데이터의 길이를 계산합니다.
    3. TCP 헤더를 추가합니다.
    4. 데이터를 전송합니다.

    이 과정을 거치면 데이터가 성공적으로 전송됩니다.

    2025-04-17 19:49

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 13,647건 / 95 페이지

검색

게시물 검색