728x90
네트워크 프로그래밍 = 소켓 프로그래밍
소켓이란
- 네트워크 연결 도구 (소프트웨어 개념)
- 소켓을 통해 프로그래머는 송수신에 대한 물리적, 소프트웨어적 세세한 내용을 신경 쓰지 않게 된다.
- TCP 소켓은 전화기에 비유될 수 있다.
- 소켓은 socket 함수의 호출을 통해서 생성된다.
- 소켓은 수신 전용, 송신 전용으로 나뉘어 진다.
소켓(전화를 받는/서버 측) 설정 순서 (tcp 기준)
1. socekt 함수 호출 - 소켓 생성 (서버 소켓 or 리스닝 소켓이라고 한다)
2. bind 함수 호출 - 주소 할당(ip, port)
3. listen 함수 호출 - 연결 요청이 가능하도록
4. accpet 함수 호출 - 연결 요청이 왔을 때 요청을 수락하는 기능(미리 호출 되고(블로킹) 전화 올때 반환이 된다. 이때 접속된 클라이언트 연결하는 소켓이 생성된다. )
5. 이후 통신이 가능 상태로 연결된 상태 => 양방향 통신이 가능한 상태가 된다.
socket 함수를 호출하면 운영체제가 socket을 만들어 주고 프로그래머가 컨트롤 할수 있도록 숫자값을 반환한다. 이때 이 숫자를 리눅스에서는 descriptor, 윈도우에선 handle로 칭한다. 중요한건 단순히 숫자에 불가 하다는 점이다. 이렇게 획득한 클라이언트 소켓(accept 함수 호출로 얻은)을 통해 클라이언트와 데이터를 주고 받을 수 있다.
728x90
'Network' 카테고리의 다른 글
[인강/윤성우/TCP/IP 소켓 프로그래밍] 소켓 타입과 프로토콜의 설정 (0) | 2022.02.24 |
---|---|
[인강/윤성우/TCP/IP 소켓 프로그래밍/정리] 윈도우 기반 소켓과 구현 (0) | 2022.02.20 |
[인강/윤성우/TCP/IP 소켓 프로그래밍/정리] 리눅스 기반 파일 조작 (0) | 2022.02.20 |
리틀엔디안/빅엔디안/LittleEndian/BigEndian (0) | 2022.02.11 |
FTP vs TFTP (0) | 2020.02.07 |