Tuesday, July 13, 2010

chapter 1 (네트워크 프로그래밍과 소켓의 이해)

소켓 프로그래밍은 다른말로 하면 네트워크 프로그래밍이다. 인터넷이라는 거대한 네트워크 망에 데이터를 주고 받기 위해서는 소켓이라는 꼭다리가 필요하다. 


연결요청을 수락하는 기능의 프로그램을 가르켜 '서버' 라고 하며 기본적으로 다음과 같은 소켓의 생성 과정을 갖는다.
1.소켓 생성 (socket)
2.IP 주소와 PORT번호 할당 (bind)
3.연결요청 가능상태로 변경(listen)
4.연결요청에 대한 수락(accept)


연결요청을 진행하는 프로그램을 가르켜 '클라이언트'라고 이 클라이언트 소켓은 connect 함수로 생성한다.


리눅스는 소켓을 파일의 일종으로 구분한다. 반면 윈도우는 파일과 소켓을 구분하기에 별도의 데이터 송수신 함수를 참조해야 한다 (윈도우 내용은 생략한다).


리눅스에서 소켓을 파일의 일종으로 취급하기에 저수준 파일 입출력 함수(저수준이란 ANSI 표준에서 정의한 함수가 아닌 운영체제가 독립적으로 제공하는 함수)인 open, close, write, read 함수로 처리가 된다.


-파일 디스크립터 : 스트림에 할당한 번호로 운영체제에서 스트림을 편하게 구분하기 위해 붙인 숫자. 윈도우에서는 '파일 핸들'이라고도 한다.

No comments:

Post a Comment