IOT - 3주차 2

강준호·2024년 3월 21일
0

IOT

목록 보기
2/13

추상화

소켓을 만들어서 TCP 레이어를 거쳐서 HTTP통신을 하게됨.

  • 이 과정은 프로그래머에게 보여주지 않음 => 추상화

소켓 프로그래밍 비유 설명

연결요청이 가능한 상태의 소켓

  • 연결요청이 가능한 상태의 소켓은 걸려오는 전화를 받을 수 있는 상태에 비
    유할 수 있다.
  • 전화를 거는 용도의 소켓은 연결요청이 가능한 상태의 소켓이 될 필요가 없
    다. 이는 걸려오는 전화를 받는 용도의 소켓에서 필요한 상태이다.

연결요청의 수락

  • 걸려오는 전화에 대해서 수락의 의미로 수화기를 드는 것에 비유할 수 있다.
  • 연결요청이 수락되어야 데이터의 송수신이 가능하다.
  • 수락된 이후에 데이터의 송수신은 양방향으로 가능하다.

정리하기!

연결요청을 허용하는 소켓의 생성과정

  • 1단계. 소켓의 생성 socket 함수호출
  • 2단계. IP와 PORT번호의 할당 bind 함수호출
  • 3단계. 연결요청 가능상태로 변경 listen 함수호출
  • 4단계. 연결요청에 대한 수락 accept 함수호출

클라이언트/ 서버 실행결과

  • 포트 주소가 일치하는지 확인하기!

윈도우 vs 리눅스

리눅스에서의 파일 디스크립터에 해당하는 것을 윈도우에서는 핸들(HANDLE)이라 한다!


소스코드를 통해서 다음 두 가지 사실을 관찰하자.

  1. 소켓의 생성과정에 따른 함수의 호출
  2. 리눅스 기반에서 호출했던 소켓 기반 입출력 함수에 어떠한 차이가 있는가?
    => 조사하자

윈도우에서는 별도의 입출력 함수를 사용

  • 리눅스와 달리 파일과 소켓을 별도의 리소스로 구분한다.
  • 때문에 파일 입출력 함수와 소켓 기반의 입출력 함수에 차이가 있다.

리눅스는 low level read,write 다 사용가능

참고자료:socket과 NIC 관계

sk 버퍼에는 포인터, 몇 바이트냐 정보만 가지고 있고, 이걸 가지고 언제든지 패킷을 만들어 낼 수 있다.


  • 예제를 가지고 답변하는법.
  • 풀 센텐스가 중요한게 아니라 키워드가 중요한것.

0개의 댓글

관련 채용 정보