네트워크/Socket Progamming

Socket Programming의 기본 개념

우대비 2024. 2. 28. 13:53
반응형

소켓 프로그래밍은 네트워크 상에서 서로 다른 시스템 간의 통신을 가능하게 하는 방법입니다. 소켓을 사용하면 애플리케이션 간에 데이터를 교환할 수 있습니다. 이는 네트워크 통신의 기본적인 구성 요소로, 인터넷이나 다른 네트워크를 통해 정보를 주고받는 모든 프로그램의 기반이 됩니다.

소켓의 기본 개념

  1. 소켓(Socket): 네트워크 통신의 끝점을 의미합니다. 소켓은 IP 주소와 포트 번호의 조합으로 정의됩니다. 서버와 클라이언트는 각각 소켓을 생성하고, 이 소켓들을 통해 서로 통신합니다.
  2. IP 주소: 네트워크 상의 기기를 식별하는 주소입니다. IPv4와 IPv6의 두 가지 버전이 있습니다.
  3. 포트 번호: 기기 내에서 특정 프로그램을 식별하기 위한 번호입니다. IP 주소가 '아파트 단지'라면, 포트 번호는 '구체적인 아파트 번호'와 같은 역할을 합니다.
  4. 프로토콜: 통신의 규칙을 정의합니다. 가장 일반적인 프로토콜은 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)입니다.

TCP vs UDP

  • TCP (Transmission Control Protocol): 연결 지향적 프로토콜로, 데이터를 보내기 전에 통신할 두 시스템 간에 안정적인 연결을 설정합니다. 데이터의 순서 보장, 데이터 무결성, 오류 수정 기능을 제공합니다. 이메일, 웹 브라우징과 같이 신뢰성 있는 데이터 전송이 필요한 애플리케이션에 적합합니다.
  • UDP (User Datagram Protocol): 비연결 지향적 프로토콜로, 연결 설정 없이 데이터를 전송합니다. TCP보다 빠르지만, 데이터의 순서나 무결성을 보장하지 않습니다. 실시간 스트리밍, 온라인 게임 등 실시간성이 중요하고 일부 데이터 손실이 허용되는 애플리케이션에 적합합니다.

소켓 프로그래밍 과정

    1. 소켓 생성: 서버와 클라이언트는 각각 소켓을 생성합니다.
    2. 바인딩: 서버 소켓은 특정 포트와 IP 주소(보통 서버 머신의 IP)에 바인딩됩니다.
    3. 듣기(리스닝): 서버는 특정 포트에서 클라이언트의 연결 요청을 기다립니다.
    4. 연결 수락: 서버는 클라이언트의 연결 요청을 수락합니다.
    5. 데이터 송수신: 연결이 설정되면, 클라이언트와 서버는 데이터를 송수신합니다.
    6. 연결 종료: 데이터 전송이 완료되면, 클라이언트와 서버는 연결을 종료합니다.
반응형
LIST

'네트워크 > Socket Progamming' 카테고리의 다른 글

C# Chating  (0) 2024.03.07
C# 비동기 통신  (0) 2024.03.03
비동기 연결 예제  (0) 2024.02.28
Socket Programming  (0) 2023.05.07
오류 처리  (0) 2023.05.07