2021-03-17(Wed)
Last updated
Last updated
ํญ๋ชฉ | ๋ด์ฉ |
ํ์ต ๋ ์ง | 2021-03-17(์) |
ํ์ต ์๊ฐ | 11:00~24:00 |
ํ์ต ๋ฒ์ ๋ฐ ์ฃผ์ | socket, bind, listen, select, accept |
ํ์ต ๋ชฉํ | exam06์ ํต๊ณผํ ์ ์๋๋ก ํ์ตํ๋ค. |
๋๋ฃ ํ์ต ๋ฐฉ๋ฒ | - |
์๋ธ์ ํธ๋ ๋๋์ง๋ง, ๋ฐ๋ก ์ด์ด์ ํ์ต ์์ํ๋ค. exam06์์ ์๊ตฌํ๋ IRC ๊ฐ์ด ์๋ฒ๋ฅผ ๋ฐ๋ก ๊ตฌํํ ์ ์๋๋ก ์ฐ์ตํ๋ค.
์ผ๋ฐ์ ์ผ๋ก ์น์๋ฒ๋ ์๋ ํ๋ก์ฐ๋ฅผ ๋ฐ๋ผ๊ฐ๋ค.
socket์ ๋ง๋ ๋ค. TCP/IP์์๋ SOCK_STREAM์ ์ฌ์ฉํ๋ค.
bind ํจ์๋ก socket์ server socket์ ํ์ํ ์ ๋ณด(์ฃผ์, port ๋ฒํธ ๋ฑ)๋ฅผ ํ ๋นํ๊ณ ์ปค๋์ ๋ฑ๋กํ๋ค. ์ด์ ๋ค๋ฅธ ์์คํ ๊ณผ ํต์ ํ ์ ์๋ ์ํ๊ฐ ๋๋ค.
์ด์ listen ํจ์๋ฅผ ํ์ฉํ์ฌ socket_fd์ผ๋ก ํด๋ผ์ด์ธํธ ์ ์ ์์ฒญ์ ํ์ธํ ์ ์๋๋ก ์ ํ ํ๋ค. ํํธ ํด๋ผ์ด์ธํธ ์ธก์์ connect๋ก ์ ์์์ฒญ์ ํ๋ค.
์ฐ๋ฆฐ select๋ก ์์ฒญ์ ๊ฐ์งํ์ฌ socket_fd์ ๋ณํ๊ฐ ์์ผ๋ฉด ์๋ 5๋ฒ์ ์คํํ๊ณ , ์๋๋ผ๋ฉด 6๋ฒ์ ์คํํ๋ค.
ํด๋ผ์ด์ธํธ ์ ์ ์์ฒญ์ ๋ฐ๋ผ accpet๋ก ์ ์์ ํ๋ฝํ๋ค. ์ด์ client socket์ด ๋ง๋ค์ด์ก๋ค.
recv/read๋ฅผ ํตํด ์ ์ก๋์ด ์ค๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด๋ค์ธ๋ค. ์ดํ write/send๋ก ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ค.
์ด ๋ exam ์๊ตฌ์ฌํญ์ ๋ฐ๋ผ ์ด๋ ํ ํด๋ผ์ด์ธํธ์ ๋ฉ์์ง๋ฅผ ๋ชจ๋ ๋๋จธ์ง ํด๋ผ์ด์ธํธ์๊ฒ ๋ธ๋ก๋์บ์คํธํ๋๋ก ๊ตฌํํ๋ฉด ๋๋ค. ์ด๋ฅผ ์ํด ํด๋ผ์ด์ธํธ ์ ๋ณด๋ฅผ ๋ฆฌ์คํธ๋ก ์ ์ฅํ์ฌ ๋ธ๋ก๋์บ์คํธํ๋๋ฐ ํ์ฉํ์๋ค.
์ฐธ๊ณ : https://badayak.com/4472
42์์๋ ์น์๋ฒ ๊ตฌํ๊ณผ IRC ๊ตฌํ ์ค ํ๋๋ฅผ ์ ํํด์ ๊ตฌํํ ์ ์๋ค. ๊ทธ๋ฐ๋ฐ exam06์ด IRC ๊ตฌํ๊ณผ ๋น์ทํ๋ค๊ณ ํ์ฌ ์ต์์น์์๊ฑฐ๋ผ ๊ธด์ฅํ๋๋ฐ, ์ผ๋ง ์ ๊น์ง ์ก์ ์ผ์ด๋ธ๋ก ๋ธ๋ก๋์บ์คํธํ์ฌ ์ฑํ ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํด์์ธ์ง ๋ณ ์ํ๊ฐ ์์ด ๊ตฌํํ ์ ์์๋ค. ๊ตฟ๊ตฟ
exam06 ์์