정의
- 소켓은 프로세스가 드넓은 네트워크 세계로 데이터를 내보내거나 혹은 그 세계로 부터 데이터를 받기 위한 실젝적인 창구 역할
- 그러므로 , 프로세스가 데이터를 보내거나 받기 위해서는 반드시 소켓을 열어서 소켓에 데이터를 써보내거나 소켓으로 부터 데이터를 읽어들여야 함
구성
- 소켓은 프로토콜, IP, 주소, 포트 넘버로 정의됨
- 프로토콜 : 프로토콜은 원래 외교상의 언어로써 의례나 국가간에 약속을 의미하며, 통신에서는 어떤 시스템이 다른 시스템과 통신을 원활하게 수용하도록 해주는 통신 규약, 약속
- IP : 전 세계 컴퓨터에 부여된 고유의 식별 주소
- 포트 : 포트는 네트워크 상에서 통신하기 위해서 호스트 내부적으로 프로세스가 할당받아야 하는 고유한 숫자 / 즉 , 같은 컴퓨터 내에서 프로그램을 식별하는 번호
👉 다시 말해, 소켓은 떨어져 있는 두 호스트를 연결해주는 도구로써, 인터페이스의 역할을 하는데 데이터를 주고 받을 수 있는 구조체로 소켓을 통해 데이터 통로가 만들어짐
HTTP 통신 vs SOCKET 통신
- HTTP 통신
- Client의 요청이 있을 때만 서버가 응답하여 해당 정보를 전송하고 곧바로 연결을 종료하는 방식
- Client가 요청을 보내는 경우에만 Server가 응답하는 단방향 통신
- Server로 부터 응답을 받은 후에는 연결이 바로 종료됨
- 실시간 연결이 아니고, 필요한 경우에만 Server로 요청을 보내는 상황에 유용
- SOCKET 통신
- Server와 Client가 특정 Port를 통해 실시간으로 양방향 통신을 하는 방식
- Server와 Client가 계속 연결을 유지하는 양방향 통신
- Server와 Client가 실시간으로 데이터를 주고받는 상황이 필요한 경우에 사용
- 실시간 동영상 Streaming이나 온라인 게임 등과 같은 경우에 자주 사용
참조 : https://helloworld-88.tistory.com/215