티스토리 뷰
소켓(Socket)이란?
* 소켓 : 소프트웨어로 작성된 통신 접속점, 응용프로그램은 소켓을 통하여 통신망으로 데이터를 송수신하게 된다.
- TCP/IP를 이용하는 창구 역할
- 두 프로그램이 네트워크를 통해 서로 통신을 수행할 수 있도록 양쪽에 생성되는 링크의 단자
⇒ 서로 다른 프로세스끼리 데이터 전달이 가능하다 !
① 스트림 (TCP)
- 양방향으로 바이트 스트림을 전송, 연결 지향성
- 오류 수정, 정송처리, 흐름제어 보장
- 송신된 순서에 따라 중복되지 않게 데이터를 수신 → 오버헤드가 발생
- 소량의 데이터보다 대량의 데이터 전송에 적합 → TCP를 사용
② 데이터그램 (UDP)
- 비연결형소켓
- 데이터의 크기에 제한이 있음
- 확실하게 전달이 보장되지 않음, 데이터가 손실돼도 오류가 발생하지 않음
- 실시간 멀티미디어 정보를 처리하기 위해 주로 사용 ex) 전화
그렇다면, 소켓 통신을 할 때 서버와 클라이언트는 어떤 흐름을 가지고 돌아가게 될까?
* 소켓 통신의 Workflow
- 서버 (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() 를 하며 통신 (이 과정이 반복)
'개념 공부' 카테고리의 다른 글
XML과 JSON 특징 그리고 차이점 (0) | 2019.02.19 |
---|---|
웹서버와 WAS 특징 그리고 차이점 (0) | 2019.02.15 |
- Total
- Today
- Yesterday
- 제이슨
- 파싱 예제
- img.src
- JSON
- tcp예제
- 제이슨 파싱
- 자바객체
- 엑스엠엘
- udp예제
- javascript obj
- 웹서버와 WAS
- 데이터교환
- web application server
- Node.js
- JavaScript Object Notation
- 소켓흐름
- 노드제이에스
- JavaScript
- Json Parser
- json parsing
- nodejs특징
- nodejs설치
- json데이터
- 노드 특징
- 자바스크립트
- nodejs
- Node실행
- JSON 파싱
- json생성
- json 예제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |