TIL (Today I Learned)/Network
[TCP/IP] hello, world๋ฅผ ์ถ๋ ฅํ๋ ์์ผ ํ๋ก๊ทธ๋จ
loki d
2021. 9. 11. 23:46
728x90
hello, world๋ฅผ ์ถ๋ ฅํ๋ ์์ผ ํ๋ก๊ทธ๋จ
- ์์ผ ํ๋ก๊ทธ๋จ ๊ตฌ์ฑ
- ์๋น์ค๋ฅผ ์์ฒญํ๋ ํด๋ผ์ด์ธํธ ์ธก
- ํด๋ผ์ด์ธํธ๋ก๋ถํฐ์ ์์ฒญ์ ๋ฐ์ ์๋น์คํ๋ ์๋ฒ ์ธก
- ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ์ด ๋คํธ์ํฌ์ฌ์ฅ์ ํต์ ์ฑ๋์ ํตํด ์๋ฒ์ธก์ ์ฐ๊ฒฐ๋๋ฉด ์๋ฒ ํ๋ก๊ทธ๋จ์ ์ฆ์ ๋ฌธ์์ด hello, world๋ฅผ ํด๋ผ์ด์ธํธ ์ธก์ ์ ์ก
- ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ์ ์ ์ก๋ฐ์ ๋ฌธ์์ด์ ํ๋ฉด์ ์ถ๋ ฅํ๋ค.
์ฐ๊ฒฐ์์ฒญ : ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ์ ์์ผ API ํจ์๋ฅผ ํธ์ถํ์ฌ ์๋ฒ ํ๋ก๊ทธ๋จ์ ์ฐ๊ฒฐ์ ์์ฒญํ๋ค.
๋ฌธ์์ด ์ ์ก : ์ฐ๊ฒฐ ์์ฒญ์ ๋ฐ์ ์๋ฒ ํ๋ก๊ทธ๋จ์ ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ๊ณผ ์ฐ๊ฒฐ๋์๋ง์ ๋ฌธ์์ด hello, world๋ฅผ ํด๋ผ์ด์ธํธ์ธก์ ์ ์กํ๋ค.
ํ๋ฉด ์ถ๋ ฅ : ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ์ ์ ์ก๋ฐ์ ๋ฌธ์์ด (helo, world)๋ฅผ ์์ ์ ํ๋ฉด์ ์ถ๋ ฅํ๋ค.
hello_server.c
์๋ฒ ํ๋ก๊ทธ๋จ์ ์ฐ๊ฒฐํ๊ธฐ ์ํด ๋คํธ์ํฌ ์ฐ๊ฒฐ ์ฅ์น์ธ ์์ผ์ ์์ฑํด์ผ ํ๊ณ , ์ฌ์ ์ ์๋ฒ์ IP์ฃผ์์ ์๋ฒ์ ์์ฉ ํ๋ก๊ทธ๋จ์ด ๊ฒฐ๋ ํฌํธ ๋ฒํธ๋ฅผ ์์์ผํ๋ค.
ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ์ ๊ตฌํํ ์ฝ๋ (socket, connect, read ๋ฑ์ ์์ผ ๊ด๋ จ API ํจ์๋ฅผ ์ฌ์ฉ)
#include<stdio.h> #include <netinet/in.h> #include <string.h> #include <sys/socket.h>
hello_client.c
์์ผ์ ์๋ฒ์ ์ฐ๊ฒฐ
- ์๋ฒ์์ ์ฐ๊ฒฐ์ ์ปค๋ ๋ด๋ถ์์ 3๋ฐฉํฅ ํธ๋์ ฐ์ดํน์ ๊ฑฐ์ณ ์ด๋ฃจ์ด์ง๋ค. ์์ ์๋ฒ์์๋ ์๋ฒ ํ๋ก๊ทธ๋จ์์ ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ ์์ฒญ์ ๋ฐ์ ์๋ฒ ๋ด ํฌํธ ๋ฒํธ (9001๋ฒ ํฌํธ)๋ฅผ ๊ฒฐ์
- ํด๋ผ์ด์ธํธ์์๋ ํด๋ผ์ด์ธํธ์ ์ปค๋์์ ์๋ฒ ์ฐ๊ฒฐ์ ์ฌ์ฉํ ํฌํธ(๊ทธ๋ฆผ์์๋ 2345๋ฒ ํฌํธ)๋ฅผ ๊ฒฐ์ ํ๊ธฐ ๋๋ฌธ์ ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ์์๋ ํฌํธ๋ฒํธ๋ฅผ ํน๋ณํ ์ง์ ํ์ง ์๋๋ค.