TIL (Today I Learned)/Network

[TCP/IP] hello, world๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋žจ

loki d 2021. 9. 11. 23:46
728x90

hello, world๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋žจ

  • ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋žจ ๊ตฌ์„ฑ
    • ์„œ๋น„์Šค๋ฅผ ์š”์ฒญํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก
    • ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ์˜ ์š”์ฒญ์„ ๋ฐ›์•„ ์„œ๋น„์Šคํ•˜๋Š” ์„œ๋ฒ„ ์ธก
  • ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์ด ๋„คํŠธ์›Œํฌ์‚ฌ์—ฅ์„œ ํ†ต์‹  ์ฑ„๋„์„ ํ†ตํ•ด ์„œ๋ฒ„์ธก์— ์—ฐ๊ฒฐ๋˜๋ฉด ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์€ ์ฆ‰์‹œ ๋ฌธ์ž์—ด hello, world๋ฅผ ํด๋ผ์ด์–ธํŠธ ์ธก์— ์ „์†ก
  • ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์€ ์ „์†ก๋ฐ›์€ ๋ฌธ์ž์—ด์„ ํ™”๋ฉด์— ์ถœ๋ ฅํ•œ๋‹ค.
    image
  1. ์—ฐ๊ฒฐ์š”์ฒญ : ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์€ ์†Œ์ผ“ API ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์— ์—ฐ๊ฒฐ์„ ์š”์ฒญํ•œ๋‹ค.

  2. ๋ฌธ์ž์—ด ์ „์†ก : ์—ฐ๊ฒฐ ์š”์ฒญ์„ ๋ฐ›์€ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์€ ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์—ฐ๊ฒฐ๋˜์ž๋งˆ์ž ๋ฌธ์ž์—ด hello, world๋ฅผ ํด๋ผ์ด์–ธํŠธ์ธก์— ์ „์†กํ•œ๋‹ค.

  3. ํ™”๋ฉด ์ถœ๋ ฅ : ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์€ ์ „์†ก๋ฐ›์€ ๋ฌธ์ž์—ด (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

์†Œ์ผ“์„ ์„œ๋ฒ„์— ์—ฐ๊ฒฐ

image

  • ์„œ๋ฒ„์™€์˜ ์—ฐ๊ฒฐ์€ ์ปค๋„ ๋‚ด๋ถ€์—์„œ 3๋ฐฉํ–ฅ ํ•ธ๋“œ์…ฐ์ดํ‚น์„ ๊ฑฐ์ณ ์ด๋ฃจ์–ด์ง„๋‹ค. ์•ž์„œ ์„œ๋ฒ„์—์„œ๋Š” ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์—ฐ๊ฒฐ ์š”์ฒญ์„ ๋ฐ›์„ ์„œ๋ฒ„ ๋‚ด ํฌํŠธ ๋ฒˆํ˜ธ (9001๋ฒˆ ํฌํŠธ)๋ฅผ ๊ฒฐ์ •
  • ํด๋ผ์ด์–ธํŠธ์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์ปค๋„์—์„œ ์„œ๋ฒ„ ์—ฐ๊ฒฐ์— ์‚ฌ์šฉํ•  ํฌํŠธ(๊ทธ๋ฆผ์—์„œ๋Š” 2345๋ฒˆ ํฌํŠธ)๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” ํฌํŠธ๋ฒˆํ˜ธ๋ฅผ ํŠน๋ณ„ํžˆ ์ง€์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์‹คํ–‰ ํ™”๋ฉด

image