2014-09-14 4 views
-1

아파치 만드는 방법에 대해 궁금합니다. 내가 원하는 것은 내 컴퓨터가 1 개의 파일을 호스트 할 수있게 해주는 프로그램 (또는 스크립트)을 만드는 것이다. 교육을 제외하고는 아주 기본적인 것이 없습니다. 누군가가 포트 8080에서 내 IP로 간다. index.html기본 웹 서버 빌드

답변

1

다음은 서버 응용 프로그램의 기본 구조에 대한 나의 생각입니다.

/* pseudocode */ 

listen_fd = socket(host, port); 

// fork or create thread to listen for connections 
{ 
    while (1) { 
    if (0 < listen(listen_fd)) { 
     fd = accept(listen_fd); 
     // add fd to a data structure you can manage. I recommend epoll. 
    } 
    } 
} 

// worker process or thread 
{ 
    while (1) { 
    // wait for events on an fd. then read data into a buffer 
    n = read(fd, &buf, buf_size); 
    // parse request however you need to... this is a lot of the art of a web server I think. 
    // load and serve content 
    response_len = alloc_and_fread("index.html", &response, response_max_size); 
    send(fd, response, response_len); 
    } 
} 
+0

좋아, 나는 알고있다.하지만 전에 네트워킹을 해 본 적이 없다. 그럼 내가 어디에서 시작 할까? 나는 fd가 무엇인지 또는 epoll인지 알지 못한다. – yuxuantim

+0

어쩌면 내가 일반적으로 포트를 어떻게 사용 하는지를 묻고 싶다. 포트 8080이나 텔넷 23에서 파일을 보내려면 어떻게해야하고 어떻게하면 포트에서 입력을 얻을 수 있을까? – yuxuantim

+0

내 대답은 내려졌습니다! 나는 실례입니다 : P @yuxuantim 당신은 높은 수준의 이해 또는 코드 세부 정보를 찾고 있습니까? Google 검색을 수행하면 어디에서나 찾을 수있는 예제 응용 프로그램이 있습니다. 여기 하나, http://www.paulgriffiths.net/program/c/webserv.php – inquist