본문 바로가기
Programming Languages/Java

Chapter 33. Socket 통신

by 더 이프 2023. 2. 7.
728x90

1. Socket 통신

■ Socket

    • 네트워크 상에서 돌아가는 두 개의 프로그램간 양방향 통신의 하나의 엔드포인트
    • 엔드포인트는 ip주소와 port번호의 조합
    • 데이터를 주고받을 수 있는 구조체

Server Socket

    • 클라이언트 소켓의 연결 요청을 대기하고, 연결 요청이 오면 클라이언트 소켓을 생성 후 통신 가능
    • socket()함수를 이용하여 소켓 생성
    • bind()함수로 ip와 port 번호를 설정
    • listen()함수로 클라이언트의 접근 요청에 수신 대기열을 만들어 몇개의 클라이언트를 대기시킬지 결정
    • accept()함수를 사용하여 클라이언트와의 연결을 기다림

■ Client Socket

    • 데이터 송/수신이 일어나는 것은 클라이언트 소켓
    • socket()함수를 이용하여 소켓 생성
    • connect()함수로 통신 할 서버의 설정된 ip와 port 번호에 통신 시도
    • 통신 시도 시, 서버가 accept()함수를 이용하여 클라이언트의 socket descriptor를 반환
    • read(), write()를 통해 클라이언트와 서버가 서로 통신
    • Server와 Client의 관계를 아래 이미지로 표현하며 A, B, C가 클라이언트임