統計情報(30日間)


最新情報をツイート

人気の投稿

GCD利用のライトウェイトなHTTPサーバライブラリ

このエントリーをはてなブックマークに追加



Hello World例
#import "GCDWebServer.h"

int main(int argc, const char* argv[]) {
  @autoreleasepool {

    // Create server
    GCDWebServer* webServer = [[GCDWebServer alloc] init];

    // Add a handler to respond to requests on any URL
    [webServer addDefaultHandlerForMethod:@"GET"
                             requestClass:[GCDWebServerRequest class]
                             processBlock:^GCDWebServerResponse *(GCDWebServerRequest* request) {

      return [GCDWebServerDataResponse responseWithHTML:@"Hello World"];

    }];

    // Use convenience method that runs server on port 8080 until SIGINT received
    [webServer runWithPort:8080];

    // Destroy server
    [webServer release];

  }
  return 0;
}

リクエストと処理のマッピングを「ハンドラ」と呼んでいていくつも登録することができる(要スレッドセーフ)。この仕組みをベースに独自の処理系が作れそう。rubyやphpの実行環境を作るのもできないことは無いかも。

Leave a Reply