== 정의 == 소켓 프로그래밍을 위한 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 * http://kldp.org/KoreanDoc/html/GNU-Make/GNU-Make.html#toc1 * http://kldp.org/KoreanDoc/VI-miniRef-KLDP * http://kldp.org/KoreanDoc/Thread_Programming-KLDP * http://www.paradise.caltech.edu/slide * 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 한 다음에...), 거기서 사용자 등록 등의 서비스를 직접 사용하게 한다.