Linux๋ก ์์ํด๋ณด๋ ๊ฐ๋จํ ์์ผ ํ๋ก๊ทธ๋๋ฐ
์์ง ์์ผ์ ๋ํ ๊ฐ๋ ์ ๋ชจ๋ฅด์๊ฒ ๋ค๊ตฌ์?
์๋์ ๋ฒํผ์ ํด๋ฆญํ์ฌ Socket ํฌ์คํธ๋ฅผ ๋ฏธ๋ฆฌ ์ฝ์ด๋ณด์๊ธฐ ๋ฐ๋๋๋ค.BSD Unix Socket ๊ตฌ์ฑ
์ ๋์ค์์ ์์ผ ํ๋ก๊ทธ๋๋ฐ์ ํ ๋๋ ํ์ผ๋ก ํ์ฌ๊ธ ํต์ ์ ํฉ๋๋ค. ๊ทธ ์ด์ ๋ ์ ๋์ค์ ๋ฆฌ์์ค ๊ตฌ์ฑ์ ํ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋์, ์ ๋์ค ํ๋ก๊ทธ๋๋ฐ์ ํ ๋ read, write ํจ์๋ฅผ ์ฌ์ฉํ ๋๋ ํ์ผ ๋์คํฌ๋ฆฝํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ฅํ๊ณ ์ถ๋ ฅํฉ๋๋ค.
์ค์ Unix Programming์์ ํ์ผ์ ์๋ก ์ด ๋, open ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. open ํจ์๋ int ํ ๊ฐ์ ๋ฐํํ๋ฉฐ ์ด ๋ฐํ ๊ฐ์ File descripter Index์ ๋๋ค.
์ด๋ฏธ์ง ์ถ์ฒ: (ํ๊ตญ์ํํธ์จ์ด์งํฅ์ ์ , Network Programming)
์ ๋์ค์์ ์์ผ ํ๋ก๊ทธ๋๋ฐ์ ํ ๊ฒฝ์ฐ, ํ์ผ์ ์ด์ฉํด์ผ ํฉ๋๋ค. ๊ทธ ์ด์ ๋ ์ ๋์ค์์ ๋ชจ๋ ํ์ผ, ํ๋์จ์ด, ํ์ดํ, ์์ผ ๋ฑ์ ์ ๋ถ ํ์ผ๋ก ์ทจ๊ธํ๊ณ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ์๋์ ํฐ๋ฏธ๋ ์ฌ์ง์ ๋ณด๋ฉด, ์ ๋์ค๋ ํ๋์จ์ด ๋ฑ์ ๋ชจ๋ ํ์ผ๋ก ํํํ๊ณ ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
์ ์ฌ์ง์ ์ค์ Linux์์ ํ๋์จ์ด๋ฅผ ๋ด๋นํ๋ ๋๋ ํฐ๋ฆฌ์ ๋ด์ฉ์ ๋ณด์ฌ์ค ๋ชจ์ต์ ๋๋ค. ๊ฐ์ฅ ๋ํ์ ์ผ๋ก ์คํ ๋ฆฌ์ง ์์ญ์ ๋ด๊ณ ์๋ sda* ๋ถ๋ถ์ SSD์ HDD์ ๋ํ ์ ๋ณด๋ก, ์ด ๋ชจ๋ ํ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๋ง์ดํธ ์ง์ ์ ํตํด ํ์ผ์ ์ก์ธ์คํ ์ ์๋๋ก ๋์ด ์์ต๋๋ค.
์์ผ ์ญ์, ์ด๋ ๊ฒ ํ์ผ๋ก ์ ์กํ๊ณ ๋ฐ๊ฒ ๋ฉ๋๋ค. ์ ๋์ค์์ ์ ๊ณตํ๋ ํจ์๋ฅผ ํตํด ํ์ผ์ ์ก์ธ์ค ํ๋ ค๋ฉด, ํด๋น ํ์ผ ๋์คํฌ๋ฆฝํฐ๋ฅผ ์ฌ์ฉํด์ผ ํ๊ธฐ ๋๋ฌธ์, ์ฐ๋ฆฌ๋ ์ ๊น ์์ชฝ์ ์ฌ์ง์ ํตํด ํ์ผ ๋์คํฌ๋ฆฝํฐ๊ฐ ์ด๋ค ๊ฒ์ธ์ง ์์๋ณด๊ฒ ์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ C Language ๋ฑ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ํตํด์ ํ์ผ์ ์ ๊ทผ์ ํ๋ ค๋ฉด, ํ์ผ์ ์ ๋ณด๊ฐ ํ์ํฉ๋๋ค. ํด๋น ํ์ผ์ด ์ด๋ค ํ์ผ์ธ์ง, ๋ฌด์จ ๊ถํ์ ๊ฐ์ง๊ณ ์๋์ง ๋ฑ์ ์ ๋ณด๊ฐ ๋ง์ด์ง์. ์ ๋์ค์์๋ ์ด๋ฅผ C ์ธ์ด์ ๊ตฌ์กฐ์ฒด์ ํ ๋น๋์ด ๋ด๊ฒจ์ ธ ์์ผ๋ฉฐ ์ด ๊ตฌ์กฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ค๋ก ๊ตฌ์ฑ๋ ํ ์ด๋ธ์ด ์กด์ฌํ๋๋ฐ, ๋ฐ๋ก ์ด ํ ์ด๋ธ์ Index๊ฐ์ด ํ์ผ ๋์คํฌ๋ฆฝํฐ ์ ๋๋ค.
์์ผ๋ ํ์ผ์ฒ๋ผ ์ด๋ฐ ๋์คํฌ๋ฆฝํฐ๋ฅผ ๊ธฐ์ง๊ณ ์๋๋ฐ, ์ฐ๋ฆฌ๋ ์ด๋ฅผ ์์ผ๋ฒํธ๋ผ๊ณ ํฉ๋๋ค. ๊ฐ๋ตํ๊ฒ ๋งํ์๋ฉด, ์์ผ์ ๊ฐ์คํ์ฌ ์ป์ ํ์ผ ๋์คํฌ๋ฆฝํฐ์ด์ง์. ์ ๋์ค์์๋ ์์ผ๋ ํ์ผ๋ก ๋ค๋ฃจ๊ธฐ ๋๋ฌธ์, ๋น์ฐํ ์์ผ์์๋ ๋์คํฌ๋ฆฝํฐ๊ฐ ์กด์ฌํฉ๋๋ค.
์์ผ ์์ฑ ์ค๋น
์์ผ์ ๋ง๋ค์ด๋ณด๊ธฐ ์ ์, ๋จผ์ ๋คํธ์ํฌ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๊ธฐ ์ํด ์ด๋ค ๊ฒ์ด ํ์ํ์ง ์๊ธฐํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๊ฐ ํธ์คํธ์๋ ํธ์คํธ๋ฅผ ๊ตฌ๋ณํ๋ ์๋ณ์์ธ IP ์ฃผ์๊ฐ ์กด์ฌํฉ๋๋ค. ํ์ง๋ง ํ ํธ์คํธ์๋ ์ฌ๋ฌ ๋คํธ์ํฌ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ ์ ์์ฃ . ๊ทธ๋ผ ํ ํธ์คํธ์์ ์ฌ๋ฌ ๋คํธ์ํฌ ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ตฌ๋ํ๊ธฐ ์ํด์๋ ๊ฐ ํ๋ก๊ทธ๋จ์ ์๋ณ์ ๋ํ ํ์ํฉ๋๋ค. ๋ก์ปฌ์์๋ ์ด๋ฅผ PID(ํ๋ก์ธ์ค ์๋ณ์ID)๊ฐ ์กด์ฌํ์ง๋ง, ๋คํธ์ํฌ์์๋ ์ด๋ฅผ PID๋ก ๊ตฌ๋ถํ์ง ์๊ณ , ํฌํธ ๋ฒํธ๋ก ๊ตฌ๋ถํฉ๋๋ค.
ํฌํธ๋ฒํธ๋ TCP/UDP ํจํท์ 16bit ํํ๋ก ๊ฐ์ด ์ ์ฅ๋์ด ์ ์กํ๊ฒ ๋ฉ๋๋ค. 1 ~ 65535๋ฒ ๋ฒํธ๋ฅผ ๊ฐ์ง๊ณ ์๊ณ , TCP์ UDP๊ฐ ๊ฐ๊ฐ ๊ฐ์ ๋ฒํธ๋ก ๋์ํ ์๋ ์์ต๋๋ค. ์ด ์๊ธฐ๋ ํ ์์ฉ ํ๋ก๊ทธ๋จ์์ TCP์ UDP๋ฅผ ๋์์ ์ฌ์ฉํ ์ ์๋ค๋ ์ด์ผ๊ธฐ์ง์.
์ ๊ทธ๋ผ ์ด์ ์์ผ์ ๋ง๋ค๊ธฐ ์ํด ํ์ํ ๊ฒ์ ์ ์ฒด์ ์ผ๋ก ๋ณด์๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ํต์ ์ ์ฌ์ฉํ ํ๋กํ ์ฝ (TCP, UDP)
- ํด๋ผ์ด์ธํธ IP ์ฃผ์
- ํด๋ผ์ด์ธํธ ํฌํธ ๋ฒํธ
- ์๋ฒ IP ์ฃผ์
- ์๋ฒ ํฌํธ ๋ฒํธ
์ค์ ํ๋ก๊ทธ๋๋ฐํ ๋, ํด๋ผ์ด์ธํธ IP ์ฃผ์์ ํฌํธ ๋ฒํธ๋ ๋ณ๋๋ก ๊ตฌ์ฑํ ํ์๊ฐ ์์ต๋๋ค. ์ด์ฐจํผ ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ์ ์ด์์ฒด์ ์์ ์๋์ผ๋ก IP ์ฃผ์์, ํฌํธ ๋ฒํธ๋ฅผ ๋ถ์ฌํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ๋ณด๋ด๊ณ ์ ํ๋ ๋ชฉ์ ์ง์ธ ์๋ฒ์ IP ์ฃผ์์ ํฌํธ ๋ฒํธ, ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉํ ํ๋กํ ์ฝ๋ง ์๋ฉด ๋ฉ๋๋ค.
์์ผ ์์ฑ
์ด์ ์์ผ์ ๋ง๋ค๊ธฐ ์ํด ํ์ํ ์ค๋น๋ฌผ์ ๋ชจ๋ ๊ฐ์ถฐ์ก์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด์ ์์ผ์ ์ด๋ป๊ฒ ๋ง๋๋์ง๋ง ์๋ฉด ๋ฉ๋๋ค. ๊ทธ๋ผ ์ด์ ์์ํด๋ณด๊ฒ ์ต๋๋ค.
๋คํธ์ํฌ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๋ ค๋ฉด, ๋ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐ ํด์ผ ํฉ๋๋ค. ํ๋๋ ์๋ฒ ํ๋ก๊ทธ๋จ, ๋ ํ๋๋ ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ์ ๋๋ค. ๋์ด ์๋ก ํต์ ์ ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ ํ๋ก๊ทธ๋จ ๋ชจ๋ ์์ผ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๊ทธ๋์ ์ ๋ ๋ ํ๋ก๊ทธ๋จ ๋ชจ๋ socket ํจ์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ด ์ฒซ ์ฝ๋๋ฅผ ์์ฑํ์์ต๋๋ค.
๋จผ์ ํฌํธ ๋ฒํธ๋ฅผ ์์ ์ง์ ํ๊ธฐ ์ํด์ ํ๋ก๊ทธ๋จ์ argument ๋ฒ์๋ฅผ 2๊ฐ๋ก ๋๋ ธ์ต๋๋ค. ํ๋ก๊ทธ๋จ์ ์คํํ ๋, ์ฌ์ฉ์๊ฐ ์ํ๋ ํฌํธ๋ฒํธ๋ฅผ ์ ๊ณ , ํด๋น ํฌํธ๋ฒํธ๋ก ์๋ฒ๊ฐ ์ด๋ฆฌ๋๋ก ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑํ ๊ฒ์
๋๋ค.
์์ผ์ ์์ฑํ ๋๋ socket() ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. socket() ํจ์๋ Ubuntu Linux๋ฅผ ๊ธฐ์ค์ผ๋ก netinet/in.h ํ์ผ์ include ํ์๋ฉด ๋ฉ๋๋ค.
์ค๋ฅ ์ฒ๋ฆฌ๋ฅผ ์ํด if ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ์ฌ ์์๊ฐ ๋์ค๋ฉด, ์ค๋ฅ ๋ฉ์์ง๊ฐ ํ์๋๋๋ก ํ์์ต๋๋ค.
socket ํจ์ ์ฒซ ์ธ์ ๊ฐ์๋ PF_INET์ด๋ผ๋ ๋งคํฌ๋ก ์์๋ฅผ ์ ์์ต๋๋ค. ์ด๋ ํ๋กํ ์ฝ ์ฒด๊ณ๋ก ์ธํฐ๋ท์ ์ฌ์ฉํ๊ฒ ๋ค๋ ์ด์ผ๊ธฐ์ ๋๋ค. ๋ณดํต IPv4 ์ฃผ์ ์ฒด๊ณ๋ฅผ ์ฌ์ฉํ ๋, ์ด ์์๋ฅผ ์ฌ์ฉํฉ๋๋ค. IPv6๋ฅผ ์ฒด๊ณ๋ฅผ ์ฌ์ฉํ๋ค๋ฉด PF_INET6์ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค.
SOCK_STREAM์ ๋ค์ด๊ฐ๋ ์ธ์๋ ์๋น์ค ํ์ ์ ์ด์ผ๊ธฐํฉ๋๋ค. ์ฝ๊ฒ ๋งํ์๋ฉด, TCP๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๋, UDP๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๋๋ฅผ ๋ฌผ์ด๋ณด๋ ๊ฒ์ด๋ผ๊ณ ๋ณด๋ฉด ์ฝ์ต๋๋ค. SOCK_STREAM์ ์ฌ์ฉํ๋ฉด TCP, SOCK_DGRAM์ ์ฌ์ฉํ๋ฉด UDP์ ๋๋ค. ๊ทธ ์ธ SOCK_RAW๋ ์กด์ฌํ์ง๋ง, ์ด๋ TCP/UDP ๊ณ์ธต์ ๊ฑฐ์น์ง ์๊ณ , ๋ฐ๋ก IP ๊ณ์ธต์ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ค์ ์์ ์ ํ๋ก๊ทธ๋จ์์ TCP๋ UDP๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ ํ๊ณ , ์ง์ ๊ตฌ์ถํ๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ ๊ณ ๊ธ ๋ฐฉ๋ฒ์ ๋๋ค.
์ธํฐ๋ท ์์ผ ์ฃผ์ ์์ฑ
์ฐ๋ฆฌ๋ ์ธํฐ๋ท์ ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ผ์ ๋คํธ์ํฌ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๋ ค๋ฉด, ์ธํฐ๋ท์ ์ฌ์ฉํ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํด์ผ ํฉ๋๋ค. ์์ ์์ผ์์ ์ฐ๋ฆฌ๋ ์ธํฐ๋ท ํ๋กํ ์ฝ ์ฒด๊ณ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ํ์์ผ๋ ์ฃผ์ ์ฒด๊ณ๋ ์ธํฐ๋ท ์์ผ ์ฃผ์ ์ฒด๊ณ๋ก ์์ฑํด์ผ ํฉ๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ์ธํฐ๋ท ์ ์ฉ ์์ผ ์ฃผ์์ธ sockaddr_in ๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ํ์ต๋๋ค.
sockaddr_in ๊ตฌ์กฐ์ฒด๋ 3๊ฐ์ ๋ฉค๋ฒ ๋ณ์๊ฐ ์กด์ฌํฉ๋๋ค. sin_family๋ ์ฐ๋ฆฌ๊ฐ ์์์ ๋ง๋ ์์ผ์ ๋ํ ์ฃผ์ ์ฒด๊ณ์
๋๋ค. ๋๋จธ์ง๋ ํฌํธ๋ฒํธ์ IP ์ฃผ์์ธ๋ฐ, ์ฌ๊ธฐ์ ์ ๋ IP ์ฃผ์๋ฅผ ๋ฐ๋ก ์ง์ ํ์ง ์๊ณ , ์ด์์ฒด์ ์์ ์ฃผ์ด์ง IP ์ฃผ์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด INADDR_ANY๋ผ ํ๋ ๋ฏธ๋ฆฌ ์ ์๋ ๋งคํฌ๋ก ์์๋ฅผ ์ฌ์ฉํ์์ต๋๋ค.
์์ผ ์ฌ์ฉ ์ ์ฐจ
์ด์ ๊น์ง๋ ์์ผ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์์ต๋๋ค. ์์ผ์ ์ ๋์ค์์ ํ์ผ ๋์คํฌ๋ฆฝํฐ์ฒ๋ผ ์์ผ ๋์คํฌ๋ฆฝํฐ๋ผ๋ ๋๊ฐ์ ์์ฑ์ ๊ฐ์ง ๊ฒ์ผ๋ก ๋์ํ๊ณ ์๋ค๋ ์ฌ์ค์ ์์์ต๋๋ค.
๊ทธ๋ผ ์ด ์์ผ์ ์ฌ์ฉํ์ฌ ์ด๋ป๊ฒ ํต์ ์ ํ ์ ์๋์ง ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๋คํธ์ํฌ ํ๋ก๊ทธ๋จ์ ๋จผ์ ์๋ฒ ํ๋ก๊ทธ๋จ์ด ๊ตฌ๋๋์ด์ผ ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ์ด ๋์ํ ์ ์์ต๋๋ค. ๊ทธ๋์ ์ ๋ ์๋ฒ ํ๋ก๊ทธ๋จ ์ฝ๋๋ฅผ ๋จผ์ ๊ตฌํํ ๊ฒ์ด๋ฉฐ, ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ์์ผ ํจ์๋ฅผ ์ฌ์ฉํด์ ์์ผ ์์ฑ๊น์ง ๋ง์ณค๊ธฐ ๋๋ฌธ์, ๊ทธ ๋ค์์ธ bind ํจ์์ ๋ํด์ ๋์๊ฐ๋ฉด ๋ฉ๋๋ค.
bind() ํจ์๋ ์์ผ๋ฒํธ์ ์์ผ์ฃผ์๋ฅผ ๋ฌถ์ด ๋๋ ํจ์์ ๋๋ค. ์์ผ๋ฒํธ๋ ์์ฉ ํ๋ก๊ทธ๋จ ๋ด์์๋ง ์๊ณ ์๊ณ , ์์ผ์ฃผ์๋ ๋คํธ์ํฌ์์๋ง ์๊ณ ์๋ ์ฃผ์์ด๊ธฐ ๋๋ฌธ์, ์ด ๋ ์์ ๋ฌถ์ด์ ๊ฐ์ ๊ฒ์ด๋ผ๊ณ ํ๊ธฐํด์ผ ํ ํ์๊ฐ ์์ต๋๋ค.
์์ผ๋ฒํธ์ ์์ผ์ฃผ์๋ฅผ ๋ฌถ์ด๋๊ธฐ ์ํด, ์์ผ๋ฒํธ๋ฅผ ์ฒซ ๋ฒ์จฐ ์ธ์๊ฐ์ผ๋ก ์ฃผ๊ณ , ์ธํฐ๋ท ์์ผ ์ฃผ์๋ ๊ตฌ์กฐ์ฒด์ด๋ฏ๋ก ํฌ์ธํฐ๋ก ๋๊น๋๋ค. ๋ง์ง๋ง์ผ๋ก ์์ผ ์ฃผ์ ๊ตฌ์กฐ์ฒด์ ํฌ๊ธฐ๊น์ง ๋ฃ์ด์ฃผ๋ฉด bind๊ฐ ์์ฑ๋ฉ๋๋ค. ์ค๋ฅ ์ฒ๋ฆฌ๋ ํ์์
๋๋ค.
์ด์ ๋ชจ๋ ์ค๋น๊ฐ ๋๋ฌ์ต๋๋ค. ์๋ฒ๋ ์ด์ listen ํจ์๋ฅผ ์ด์ฉํด ๋๊ธฐ๋ชจ๋๋ก ๋ค์ด๊ฐ๋๋ค. ๋๊ธฐ๋ชจ๋๋ ํด๋ผ์ด์ธํธ๊ฐ ์ ํธ๋ฅผ ์ค ๋ ๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ํจ์๋ก, ๋ง์น ์๋์ด ์ค๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ๊ณผ ๊ฐ๋ค๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค. listen ํจ์์์ ๋ง์ง๋ง ์ธ์ ๊ฐ์ ๋์ ์ ์ ํ์ฉ ํด๋ผ์ด์ธํธ ์์
๋๋ค.
ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ์ ์ฑ๊ณตํ๋ฉด, ์๋ฒ๋ accept() ํจ์๋ฅผ ํธ์ถํ๊ณ , ํด๋ผ์ด์ธํธ์ ํต์ ์ ํ๊ธฐ ์ํ ์์ผ์ ๋ฐํํ๊ฒ ๋ฉ๋๋ค. ๊ณ ๋ก ์๋ฒ ํ๋ก๊ทธ๋จ์๋ 2๊ฐ์ ์์ผ์ด ํ์ํ ๊ฒ์ด์ฃ . Listen์ ์ํ ์์ผ๊ณผ ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ์ ๋ฐ๊ธฐ ์ํ Accept๋ฅผ ์ํ ์์ผ.
accept ์์ผ์ ํด๋ผ์ด์ธํธ์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ์ฐ๊ฒฐ ๊ณ ๋ฆฌ๋ก, listen socket์ ๊ณ์ ๋ค์ ์ฐ๊ฒฐ์ ๋ฐ๊ธฐ ์ํ ์ฉ๋๋ก ์ฌ์ฉ๋ฉ๋๋ค.
ํฌํธ ๋ฒํธ๋ฅผ ์
๋ ฅํ๊ณ , ํ๋ก๊ทธ๋จ์ ์คํํ๋ฉด, ๊ตฌ๋ ์ค์ธ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์์์ ์ ๋ ฅํ 50061 ํฌํธ๋ฒํธ๊ฐ ์ฌ์ฉ ์ค์ ๋๋ค.
ํด๋ผ์ด์ธํธ๋ ์๋ฒ ํ๋ก๊ทธ๋จ์ฒ๋ผ ์์ ๊ฐ์ด ์์ฑํ์๋ฉด ์ฝ๊ฒ ๋คํธ์ํฌ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ์ค ์ ์์ต๋๋ค.
๋ง์น๋ฉฐ...
์์ผ ํ๋ก๊ทธ๋๋ฐ์ ๋ํ ์์ ๊ณผ ์๋ฃ๋ค์ ๋ง์ด ์์ง๋ง, ์ฌ์ค ์ ํ๊ธฐ๋ ์ด๋ ต๊ณ , ์ฝ์ง ์์ ํ๋ก๊ทธ๋๋ฐ ์ค์ ํ๋ ์
๋๋ค. ๋ฌด์๋ณด๋ค๋ ์์ผ ํ๋ก๊ทธ๋๋ฐ์๋ ์ด์์ฒด์ ์์ ์ผ๋ถ ์ปค๋ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ๋คํธ์ํฌ์์ IP ์ฃผ์ ๋ฑ์ ํ๋กํ ์ฝ์ ์ดํดํ ์ ์์ด์ผ ์ฝ๊ฒ ํ ์ ์๋ ํ๋ก๊ทธ๋๋ฐ์ด๊ธฐ๋ ํฉ๋๋ค.
์์ผ ํ๋ก๊ทธ๋๋ฐ ํฌ์คํธ๋ ์์ ๋ถํฐ ๊ณํํ๋ ๊ฒ์ด์ง๋ง, ์ด๋ค ๋ฐฉ์์ผ๋ก ์ ๊ทผํด์ผ ์ข์์ง๋ฅผ ์ฌ๋ฌ ๋ฒ ๊ณ ๋ฏผํ ๋์ ์ด์ ์์ผ ์์ฑํ๊ฒ ๋์์ต๋๋ค.
์ ๊ฐ ์์ผ๋ก ์ฝ๋ฉํ๊ฒ ๋ ํํธ๋ ๋คํธ์ํฌ ํ๋ก๊ทธ๋๋ฐ ๋น์ค์ด ๋์์ง๋ฉด์, ์ ์ ์ด ํ๋ก๊ทธ๋๋ฐ์ ์ฌ๋ฏธ๋ฅผ ๋ถ์ด๊ฒ ๋์์ต๋๋ค. ๋ค์ ํฌ์คํธ๋ ์ฐ๋ ๋ ๋ฑ์ ์ฌ์ฉํด์ ๋คํธ์ํฌ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ ํฌ์คํธ๋ฅผ ์์ฑํ๋๋ก ํ๊ฒ ์ต๋๋ค.
'Infrastructure > Linux' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Intel CPU ๋ณด์ ์ทจ์ฝ์ ํจ์น๋ก ์ธํ ์ฑ๋ฅ ๊ฐ์์ 1์ฐจ ํ ์คํธ (0) | 2018.01.04 |
---|---|
Linux์์ MQTT Broker, Mosquitto ์ค์น (0) | 2017.08.28 |
Cerebro Search - OS X Spotlight ๊ฒ์ (0) | 2017.02.24 |
Ubuntu 16.10 ๋ฒ์ ์์ nimf ์ ๋ ฅ๊ธฐ ์ค์น (0) | 2017.01.03 |
UFW (The Uncomplicated Firewall, ์ฐ๋ถํฌ ๋ฆฌ๋ ์ค ๋ฐฉํ๋ฒฝ ๋ฐ๋ชฌ) ์ ํ์ฉ (0) | 2016.05.22 |