0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Obj-C]http server[cocoa]

Last updated at Posted at 2025-09-24

そういえばサードパーティを使わずに Mac で http server を立てるのはどうやるんだ?とふと思った。
特に Objective-C ネイティブで書かれたコードなどあるだろうか?

探す

GitHub など物色。
どれもメンテされていないが、使えそうなプロジェクトは以下の3つほど。

CocoaHTTPServer

GCDWebServer

OCFWebServer

なお、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 にブラウザでアクセス。

qiita-http-server.png

できてましたね。

よしよし。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?