본문 바로가기
임시 저장소(Temperature)

[Linux/Ubuntu] 서버 소켓/네트워크 프로그래밍 첫 번째 | Socket programming Network for Server

by 갈팡이지팡이 2019. 10. 1.

Step 1. 소켓은 무엇인가?


깊게 생각하지 말자 그냥 소켓이라는 단어적인 의미로 먼저 접근해보자

소켓(Socket) : 끼우는 구멍, 꽂는 구멍

그렇다 그냥 뭔가를 끼우는 구멍이라고 생각하자(일단은)


 

Step 2. 소켓은 어떻게 쓰는 걸까?


소켓을 사용하는데 있어서 소켓의 구조는 어떻게 생겨먹었는지는 중요한게 아니고,

그냥 이게 무슨 역할을 하는지 어떻게 잘 써서 기능만 구현하면 장땡이라 생각함

그럼 이 소켓을 어떻게 써야되는지 한 번 삽질해보도록 함

 

먼저 소켓을 어떻게 사용하는지에 대해 간단하게 설명 먼저 함

Step 3. 소켓 프로그래밍의 기본 개념 1 - 서버와 클라이언트

소켓 프로그래밍을 할 때는 연결을 요청하는 디바이스(휴대폰, 태블릿, 노트북, 데스크탑 등)와 연결을 요청받는 디바이스(주로 컴퓨터, 노트북, 서버 등)가 존재해야 함

그리고 이를 흔히 부르기를

연결을 요청하는 디바이스를 클라이언트(Client)라고 하고,

연결을 요청받는 디바이스를 서버(Server)라고 함

Step 4. 소켓 프로그래밍의 기본 개념 2 - 흐름

클라이언트에서 서버로 연결을 요청하기 위해서는 서버가 동작 중이어야 함

"가게에 물건 좀 보려고 들어가려고 하는데 문을 안열면 아모고토 할 수 없음"


 

Step 5. 서버의 4단계 흐름


1단계 : 소켓을 생성

2단계 : 서버에 IP 주소 할당

3단계 : 클라이언트로부터 연결 요청을 받을 수 있는 상태(Listening)를 만듬

4단계 : 클라이언트로부터 연결 요청이 들어왔을 때 요청을 받음

 

 


 

아직 까진 할만 하네