2009-04-20 3 views
3

내 프로그램에 작은 웹 서버를 임베드하는 중입니다. 비교적 간단합니다. 원시 HTML 파일과 자바 스크립트 만 제공하면됩니다.C 라이브러리의 Http 라이브러리 #

기본 배관을 구할 때 사용할 수있는 비동기 네트워킹 코드가 있습니다. http를 이해할 수있는 라이브러리가 있습니까?

URL 요청을 구문 분석하여 경로, 쿼리 문자열, 게시 변수를 추출하고 그에 따라 응답 할 수 있어야합니다.

SSL 또는 쿠키 또는 인증이 필요 없습니다.

두 개의 웹 서버 라이브러리를 사용해 보았지만 만족스럽지 않았습니다. 주로 프로그램의 UI와 상호 작용하는 작업자 스레드를 사용하기 때문입니다.

이상적으로, 나는 단지 http 요청 문자열 \ stream을 취하고 구조 또는 객체를 돌려 줄 라이브러리를 원한다.

답변

6

HttpListener은 원하는대로 할 수 있다고 생각합니다.

편집 : (만약을 추가 코드 샘플)

다음은 (비동기 방법을 사용)를 사용하는 방법을 보여 약간의 코드입니다.

HttpListener _server = new HttpListener(); 

// add server prefix (this is just one sample) 
_server.Prefixes.Add("http://*:8080"); 

// start listening 
_server.Start(); 

// kick off the listening thread 
_Server.BeginGetContext(new AsyncCallback(ContextCallback), null); 

다음

// get the next request 
HttpListenerContext context = _server.EndGetContext(result); 

// write this method to inspect the context object 
// and do whatever logic you need 
HandleListenerContext(context); 

// is the server is still running, wait for the next request 
if (_Server.IsListening) 
{ 
    _server.BeginGetContext(new AsyncCallback(ServerThread), null); 
} 

ContextCallback(IAsyncResult result)은 당신이 사용할 수있는 무엇에 대한 자세한 내용은 HttpListenerContext 살펴보십시오에서

하지만 주 하나는 아마도 Request 재산 것입니다.

2

System.Net 네임 스페이스의 클래스를 사용하지 않는 이유는 무엇입니까? 특히 HttpListener.

+1

"이 클래스는 Windows XP SP2 또는 Windows Server 2003 운영 체제를 실행하는 컴퓨터에서만 사용할 수 있습니다." –

관련 문제