라즈베리 파이 소켓 통신

곽정은·2021년 5월 24일
0

컴퓨터 지식

목록 보기
1/1
post-custom-banner

요즘 아이펠 해커톤을 준비하느라 라즈베리 파이도 같이 공부 중에 있습니다.
아주 띄엄띄엄 공부하고 있기 때문에 잘하는 편은 아닙니다.
그래도 코드가 직접 눈에 현상으로 보여진다는 것은 큰 매력이네요.

오늘은 소켓 통신에 대해 정리하고 스크랩하겠습니다.
공부하려고 적는 글이며, 실제 실행은 수요일쯤에나 가능하지 않을까합니다.
얼른 해보고 싶네요.


TCP/IP

  • 인터넷 상에서 데이터를 교환할 때 쓰이는 프로토콜.
  • TCP는 Transmission Control Protocol로, 소켓 포트 단위의 송수신 프로토콜.
  • IP는 Internet Protocol로, 컴퓨터마다 주어지는 IP 주소 단위의 송수신 프로토콜.

Port

  • IP로 해당 PC에 접근했을 때, PC 내부에서 어느 프로그램고 통신을 해야하는지 구분할 때 사용하는 것.
  • 통신을 위한 출입구로써 각 프로그램들은 자신만의 포트를 부여함으로 각가 통신을 할때 구분이 가능하게 함.
  • 포트 번호는 0 ~ 65535까지 쓸 수 있고, 0 ~ 1023까지는 시스템에서 사용하는 포트임으로 사용하면 안됨.
    --> 즉, 1024 ~ 65535 사이의 숫자를 사용하면 됨.

소켓

  • 인터넷 연결용 포트.
  • 각 프로그램에 포트를 세팅해 놓으면 알아서 통신되는 것이 아니라 이 소켓으로부터 데이터를 주고 받는 것임.
  • 컴퓨터 네트워킹에서 인터넷 소켓, 네트워크 소켓은 Endpoint를 의미.

소켓 통신

<서버(server)>
1. 우선 socket() 함수를 이용해 소켓을 생성한다.
2. 그리고 bind() 함수로 ip와 port 번호를 설정한다.
3. listen() 함수로 클라이언트의 접근 요청에 수신 대기열을 만들어 몇 개의 클라이언트를 대시 시킬지 결정한다.
4. accept() 하ㅏㅁ수를 사용하여 클라이언트와의 연결을 기다린다.

<클라이언트(client)>
1. socket() 함수로 가장 먼저 소켓을 연다.
2. connect() 함수를 이용해서 통신할 서버의 설정된 ip와 port 번호에 통신을 시도한다.
3. 통신을 시도할 때, 서버가 accept() 함수를 이용하여 클라이언트의 socket descriptor를 반환한다.
4. 이를 통해 클라이언트와 서버가 서로 read(), write()를 하며 통신한다.
5. 이 과정이 반복된다.


아래는 "soket" 패키지를 설치해서 통신하는 방법입니다.

이만 점심시간이니 가봐야겠네요.
짧게나마 소켓 통신에 대해 알아봤습니다.
수요일에 시도해봤을 때 꼭 성공하길...!

profile
인공지능 냉각시스템 개발기업 전략기획
post-custom-banner

0개의 댓글