TCP μμΌ νλ‘κ·Έλλ° κΈ°λ° λμ λμΆ μλ² νλ‘μ νΈ
ν΄λΌμ΄μΈνΈκ° μλ²μ μ μνμ¬ νμκ°μ , λ‘κ·ΈμΈ, λμ μ‘°ν, λμ λμΆ λ° λ°λ© κΈ°λ₯μ μ΄μ©ν μ μλ μ½μ κΈ°λ° λμ λμΆ μμ€ν μ λλ€.
- TCP Socket Programming κΈ°λ° μλ²Β·ν΄λΌμ΄μΈνΈ μμ€ν
- λ€μ€ ν΄λΌμ΄μΈνΈ λμ μ μ μ§μ (
fork()μ¬μ©) - νμκ°μ λ° λ‘κ·ΈμΈ κΈ°λ₯ ꡬν
- λμ λͺ©λ‘ μ‘°ν λ° λμΆ / λ°λ© κΈ°λ₯ μ 곡
- λμΆ κΈ°κ°(7μΌ) κ΄λ¦¬ λ° μ°μ²΄ μ¬λΆ νλ³
- μ¬μ©μ μ 보μ λμΆ κΈ°λ‘μ νμΌλ‘ μ μ₯νμ¬ μλ² μ’ λ£ νμλ λ°μ΄ν° μ μ§
- μ½μ νκ²½μμ μλ²μ ν΄λΌμ΄μΈνΈ κ° μνΈμμ©
- νμκ°μ
(
SIGNUP) - λ‘κ·ΈμΈ (
LOGIN) - μ¬μ©μ μ 보 μ μ₯ λ° μΈμ¦
- λμ λͺ©λ‘ μ‘°ν (
LIST) - λμ λμΆ (
BORROW) - λμ λ°λ© (
RETURN) - λμΆ κ°λ₯ μ¬λΆ νμ
- κΈ°λ³Έ λμΆ κΈ°κ° 7μΌ
- λμΆ κΈ°κ° μ΄κ³Ό μ μ°μ²΄ μ¬λΆ νλ³
- λ°λ© μ μ°μ²΄ λ©μμ§ μΆλ ₯
- λΉλ°λ²νΈ μ
λ ₯ μ
*νμ μ²λ¦¬ - μλ² μ’ λ£ νμλ νμ λ° λμΆ μ 보 μ μ§
| λͺ λ Ήμ΄ | μ€λͺ |
|---|---|
SIGNUP |
νμκ°μ |
LOGIN |
λ‘κ·ΈμΈ |
LIST |
λμ λͺ©λ‘ μ‘°ν |
BORROW |
λμ λμΆ |
RETURN |
λμ λ°λ© |
EXIT |
νλ‘κ·Έλ¨ μ’ λ£ |
BookRentalServer
β
βββ book_server.c # λμ λμΆ μλ²
βββ book_client.c # ν΄λΌμ΄μΈνΈ
βββ books.txt # λμ λͺ©λ‘ (μ΅λ 10κΆ)
βββ users.txt # νμ μ 보
βββ borrow_log.txt # λμΆ κΈ°λ‘
βββ netprog2.h # κ³΅ν΅ ν€λ
βββ Makefile # Build λ° Reset
μ€ν νλ©΄κ³Ό λμ κ³Όμ μ μλ λ Έμ νμ΄μ§μμ νμΈν μ μμ΅λλ€. π μ€ν λμ μμ 보λ¬κ°κΈ°
- C
- TCP Socket Programming
- Linux
- Makefile
- File I/O
-
users.txt
- νμκ°μ μ μμ΄λμ λΉλ°λ²νΈ μ μ₯
- λ‘κ·ΈμΈ μ μ¬μ©μ μΈμ¦
-
books.txt
- λμ λͺ©λ‘ μ μ₯
- μ΅λ 10κΆ μ§μ
- λμ λμΆ μν κ΄λ¦¬
-
borrow_log.txt
- λμΆ λ° λ°λ© κΈ°λ‘ μ μ₯
- μ°μ²΄ μ¬λΆ νμΈ
make resetμ€ν μ
- νμ μ 보 μ΄κΈ°ν
- λμΆ κΈ°λ‘ μ΄κΈ°ν
- λμ μν μ΄κΈ°ν (λͺ¨λ λμλ₯Ό λμΆ κ°λ₯ μνλ‘ λ³κ²½)
- TCP μμΌ ν΅μ μ μ΄μ©ν μλ²Β·ν΄λΌμ΄μΈνΈ ꡬ쑰λ₯Ό ꡬν
fork()λ₯Ό νμ©νμ¬ λ€μ€ ν΄λΌμ΄μΈνΈ λμ μ μμ μ²λ¦¬- νμΌ μ μΆλ ₯μ νμ©νμ¬ νμ μ 보μ λμΆ κΈ°λ‘μ μꡬμ μΌλ‘ μ μ₯
- λΉλ°λ²νΈ μ
λ ₯ μ
*κ° μΆλ ₯λλλ‘ κ΅¬ν