Socket Programming C API
Socket Programming Tutorial In C For Beginners
Client socket workflow
- socket(2) | ์์ผ์ ์์ฑํ์ฌ file descriptor๋ฅผ ๋ฆฌํด๋ฐ๋๋ค.
- connect(2) | ์๋ฒ์๊ฒ ์ปค๋ฅ์ ์ ์์ฒญํ๋ค.
- recv(2) | recieve data from the server
Server socket workflow
graph LR; socket --> bind bind --> listen listen --> accept accept --> id1["send or write"] accept --> id2["recv or read"]
- bind(2) | ์์ผ์ ip, port์์ ๋ฐ์ธ๋ ํ๋ค.
listen(socket, backlog)
:accept
๋ฅผ ํตํด ๋ค์ด์ค๋ ์ฐ๊ฒฐ๋ค์ ๊ด๋ฆฌํ๋ค.backlog
๋ฅผ ์ฌ์ฉํ์ฌ ์ต๋ ์์ผ ์๋ฅผ ์ ์ํ ์๋ ์๋๋ฐ, ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ๊ณผ๋ ๋ณ๊ฐ์ธ ๊ฒ ๊ฐ๋ค.- accept(2)
accept(socket, struct sockaddr *, socklen_t *)
: ํด๋ผ์ด์ธํธ ์์ผ์ ๋ฐ๋๋ค. ๋ ๋ฒ์งธ, ์ธ ๋ฒ์งธ ์ธ์๋ฅผ ๋ฃ์ด ํด๋ผ์ด์ธํธ์ ์ฃผ์๋ฅผ ์ป์ ์ ์๋ค. send(socket, char *buf, int buflen, flag)
: ์ง์ ํ ์์ผ์ผ๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋ธ๋ค.