そういえばサードパーティを使わずに Mac で http server を立てるのはどうやるんだ?とふと思った。
特に Objective-C ネイティブで書かれたコードなどあるだろうか?
探す
GitHub など物色。
どれもメンテされていないが、使えそうなプロジェクトは以下の3つほど。
なお、OCF は GCD の fork。
使う
最も使いやすそうな OCF をチョイス。
テストはしないので、Classes フォルダに収められているクラスのみを使う。
サンプルを参考にして以下のコードを書く。
#import "OCFWebServer.h"
#import "OCFWebServerRequest.h"
#import "OCFWebServerResponse.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
OCFWebServer *server = [OCFWebServer new];
// Add a request handler for every possible GET request
[server addDefaultHandlerForMethod:@"GET"
requestClass:[OCFWebServerRequest class]
processBlock:^void(OCFWebServerRequest *request) {
// Create your response and pass it to respondWith(...)
OCFWebServerResponse *response = [OCFWebServerDataResponse responseWithHTML:@"<h1>Hello httpServer!</h1>"];
[request respondWith:response];
}];
// Run the server on port 8080
[server runWithPort:8080];
}
return EXIT_SUCCESS;
}
実行。
[VERBOSE] OCFWebServer started on port 8080
[VERBOSE] Registered Bonjour service "MBA2023M2" with type '_http._tcp.' on port 8080
これで、127.0.0.1:8080 にブラウザでアクセス。
できてましたね。
よしよし。
