== ì •ì˜ == 소켓 프로그래ë°ì„ 위한 TCP/IP ìš©ì–´ ì •ë¦¬ == TCP/IP 란? == ì¸í„°ë„· 구조를 간단하게 살펴보면 || ì• í”Œë¦¬ì¼€ì´ì…˜ || || ì „ì†¡ || || ë„¤íŠ¸ì›Œí¬ || || ë„¤íŠ¸ì›Œí¬ ì ‘ì† || ì´ëŸ° ê·¸ë¦¼ì„ ê·¸ë¦´ 수가 있다. ê·¸ë¦¼ì— ëŒ€í•œ ì„¤ëª…ì€ í•˜ì§€ 않는다. 위 그림중 ì „ì†¡ 계층 부분과 ì• í”Œë¦¬ì¼€ì´ì…˜ 계층 사ì´ì—ì„œ ì• í”Œë¦¬ì¼€ì´ì…˜ 개발ìžë¥¼ 위해서 ì œê³µë˜ëŠ” API(Application Programming Interface)ì˜ ê°€ìž¥ 대표ì ì¸ í˜•íƒœê°€ TCP/IP ì´ë‹¤. == TCP(Transmission Control Protocol)? UDP(User Datagram Protocol)? == ìœ„ì— ë‚˜ì™”ë˜ ê·¸ë¦¼ì¤‘ ì „ì†¡ ê³„ì¸µë¶€ë¶„ì— í•´ë‹¹í•˜ëŠ” í”„ë¡œí† ì½œë“¤ì´ë‹¤. 간단하게 설명해서 TCP 는 ì‹ ë¢°ì„±ìžˆëŠ” ì „ì†¡, UDP 는 'ë‚œ 보냈으니 잘 ê°€ë˜ì§€ ë§ë˜ì§€' ë¼ê³ 하는 í”„ë¡œí† ì½œì´ë‹¤. == Socket? == ì• í”Œë¦¬ì¼€ì´ì…˜ì´ ë°ì´í„°ë¥¼ ë³´ë‚´ê³ ë°›ì„수 있는 추ìƒì 계ë…ì´ë‹¤. ë¼ê³ 하면 '먼소리여?' í• ì§€ 모른다. 쉽게 ë§í•´ì„œ ë°ì´í„°ë¥¼ 파ì¼ì— ì“°ê³ ì½ëŠ” 것처럼 ì†Œì¼“ì„ ì‚¬ìš©í•´ì„œ ë°ì´í„°ë¥¼ ì“°ê³ ì½ì„ 수 있단 소리다. ì´ë ‡ê²Œ 하면 다른 ì• í”Œë¦¬ì¼€ì´ì…˜ ì—ì‹œ 쓰여진 ì†Œì¼“ì„ ì½ì„ 수 ìžˆê³ ê·¸ ì—ë„ ì„±ë¦½í•œë‹¤. == Thread == == ì°¸ê³ == * ì¸ì œ TCP/IP 소켓 프로그래ë°ì— 들어가 볼까? ê·¼ë° ì‚¬ì „ì§€ì‹ì´ ë§Žì´ ë¶€ì¡±í•˜ê² êµ° 위ì—있는 것만으로는 íƒë„ 없지.. ê·¸ë ‡ë‹¤ë©´? 알아서들.. 찾아보시길.. -_-; (사실 ë‚˜ë„ ìž˜ 몰ë¼...) * http://cs.ecs.baylor.edu/~donahoo/practical/CSockets/textcode.html <Socket Programming for C> * http://kldp.org/KoreanDoc/html/GNU-Make/GNU-Make.html#toc1 <using make file> * http://kldp.org/KoreanDoc/VI-miniRef-KLDP <using vi editer> * http://kldp.org/KoreanDoc/Thread_Programming-KLDP <using thread> * http://www.paradise.caltech.edu/slide <sliding window project> * Richard Stevens와 Douglas Comerì˜ ì €ìž‘ë“¤: ì´ ìª½ì—서는 ë°”ì´ë¸”ë¡œ 통함. * Effective TCP/IP Programming: 44 Tips to Improve Your Network Programs : TCP/IP í”„ë¡œê·¸ëž˜ë° íŒ ëª¨ìŒ * TCP/IP Sockets (Java/C ë²„ì ¼) : 가장 ì§§ì€ TCP/IP ì„œì . ì§§ì€ ì‹œê°„ ë™ì•ˆ ê°œë¡ ì ì´í•´ë¥¼ ì–»ëŠ”ë° ìµœê³ . * Interactive Shellì´ ì§€ì›ë˜ëŠ” 언어(e.g. Python, Ruby, ...)를 사용하면 TCP/IPì˜ ê°œë…ì„ ì•„ì£¼ ë¹ ë¥¸ 시간 ì•ˆì— ë°°ìš¸ 수 있ìŒ. (Pythonì€ ë‚´ë¶€ì 으로 C ë¼ì´ë¸ŒëŸ¬ë¦¬ë¥¼ 그대로 사용) ë˜, 현재 개발ëœ/ê°œë°œì¤‘ì¸ ì‹œìŠ¤í…œì„ í…ŒìŠ¤íŠ¸ 하는 ë°ì—ë„ ë§¤ìš° 편리함. 예컨대, 리코ì—서는 XMLRPC 서버 ì ‘ì†ì„ 파ì´ì¬ 쉘ì—ì„œ í•˜ê³ (import xmlrpc í•œ 다ìŒì—...), 거기서 ì‚¬ìš©ìž ë“±ë¡ ë“±ì˜ ì„œë¹„ìŠ¤ë¥¼ ì§ì ‘ 사용하게 한다.