Socket API

Socket API완성이 되면 docbook(네트워크 환경은 매우 다양하며, 예측하기 힘든경우도 많이 발생한다. 때문에 네트워크프로그램의 종류에 따라서 소켓의 세부사항을 조절해야 하는 경우가 발생한다. 이러한 소켓옵션 설정을 위해서 소켓은 getsockopt()와 setsockopt()두개의 함수를 제공한다. 이름에서 알 수 있듯이 getsockopt는 ...

소켓 전달을 통한 prefork 서버 구현

소켓 전달을 통한 prefork 서버 구현fork()는 새로운 자식프로세스를 실행시키기 위해서 사용하며, 다수의 클라이언트를 동시에 처리하기 위해서 입출력다중화(이 방식의 단점이라면 fork()로 새로운 프로세스를 생성시키는 자체에 많은 비용이 들어간다는 점이 될 것이다. 이 문제를 해결하기 위해서 적당한 수만큼 프로세스를 미리 할당시켜 놓고, 새로운 연...

예제로 알아보는 소켓 프로그래밍

예제로 알아보는 소켓 프로그래밍 예제가 쓸데 스럽게 복잡함. 예제 프로그램을 echo 로 바꿔야 겠음. -- 2011/02/22 --이문서에서 소켓(여기에서는 이 사이트의 취지에 맞도록 가장 간단하게 접근할수 있는 방법, 즉 "문고리"를 잡는데에 까지만을 설명하도록 하며, Unix(Linux) 상에서가장 널리, 그리고 일반적으로 사용되는 INET(TCP/...

소켓 타임아웃

소켓 타임아웃서버 / 클라이언트 모델 구축을 위해서 우리는 보통 Socket API 를 사용하게 된다. 이 Socket API 는 전송계층 레벨에서 통신을 가능하도록 도와주며, 매우 신뢰성있게 작동한다. 대부분의 read/write 작업을 할때 문제가 생기면 문제 상황을 리턴해 주기 때문에 문제상황에 대처하기도 쉽다.그러나 네트워크 단절, 클라이언트 프로...

gethostbyname에서 timeout 처리하기

gethostbyname에서 timeout 처리하기gethostbyname은 도메인이름에 대한 주소를 얻어오는 소켓(이 함수는 편리하게 사용할 수 있으나 입출력 과정이 감추어져 있어서, timeout처리를 할 수 없다는 문제가 있다. timeout 처리를 위한 방법에 대해서 고민해 보려고 한다.리눅스는 /etc/resolv.conf에 DNS(Domain ...

epoll - Kernel 2.6 기반

epoll - Kernel 2.6 기반이전의 epoll(2.4에서 epoll은 정식지원 사항이 아니었지만, 2.6에서는 정식지원이 되는 관계로 별도의 커널패치라든지 라이브러리(아래는 간단한 예제입니다. ET (EPOLLET) 방식이기 때문에 소켓을 nonblocking으로 했습니다. ET로 할것인지 LT로 할것인지에 대해서 생각이 다를 수 있는데, 속편하...

xinetd 프로그래밍

xinetd 프로그래밍2002년에 만들어진 문서다. 당시에는 inetd를 사용했는데, (2014년)지금은 xinetd방식을 사용하고 있다. 지금 상황에 맞게 문서를 업데이트 한다. -- 2011/06/23 일반적으로 네트워크 프로그램을 만든다고 하면, 독립된 소켓 서버 프로그램을 생각할거다 함수로 연결 소켓을 가져온다음 멀티 스레드 혹은 멀티 프로세스방식...

멀티 프로세스 기반 소켓 프로그램 개발

멀티 프로세스 기반 소켓 프로그램 개발멀티 프로세스는 시스템 프로그래밍 영역으로 에서 자세히 다루고 있으니 참고하기 바란다. BSD 소켓은 네트워크 통신을 위한 기술만을 제공한다. 다수의 클라이언트를 처리하기 위한 기술등은 제공하지 않는다. 소켓 프로그래밍에서 데이터 통신 이외의 기술은 독립된 기술로 존재한다. 그러므로 (다수의 클라이언트를 처리하는 등의...

서버 클라언트 모델 기반의 계산기 프로그램 제작

서버 클라언트 모델 기반의 계산기 프로그램 제작작성자본 강좌에서는 네트웍을 통해 접속한 클라이언트가 전송한 수식데이터를 받아서 서버에서 연산후 그 결과를 다시 클라이언트로 전송하는 C/S 프로그램 예제이다.지금까지 익한 자료구조와 네트워크 프로그래밍 기법, 계산기 알고리즘을 이용하여 직접해보도록 한다. #include #include

select를 이용한 다중연결 처리 서버 작성

select를 이용한 다중연결 처리 서버 작성우리는 문서를 읽어 보기 바란다.select(2) 를 통해서 다중연결서버를 만들경우 fork(2)를 이용한 멀티 프로세스에 비해서 몇가지 장점이 있다. 프로세스 생성은 매우 많은 비용이든다. 입출력 다중화는 프로세스 생성비용을 줄일 수 있다. 멀티 프로세스 방식 프로그램의 경우 독립된 프로세스로 실행되므로 프로...