Sucha's Blog ~ Archive for September, 2015

15年9月15日 周二 23:40

Cross platform HTTP server

这个开源的跨平台的小型 HTTP 服务端已经正式用在了公司内部产品上,地址是 https://github.com/lalawue/m_http_server.

支持浏览器端通过 HTTP 访问设备上面的内容,上传下载都是现成的。

各目录下的小 demo 展示在 iOS/MacOS/Linux/Windows 平台下面的使用方式。实 际上,只要有 socket 接口,以及支持 C99 的编译器,这套玩意儿就能跑起来。

因为所有代码都是用 C 实作的,底层是跨平台的 select 构造的消息循环,内部 的封装是支持 TCP 跟 UDP 的 IPV4。

这个项目最早只是一个跨平台的 socket 接口,用于之前的游戏上面,跑自定义的 二进制流,后来年初尝试着用它搭建一个 HTTP 下载器,不了了之。实话说,用 C 写处理 HTTP 确实蛋疼,其实应该用 C++ 的,C++ 跨平台也 OK,当然问题是我不 熟 C++。

后来因为有这方面的需要,慢慢发展成为了 HTTP 服务器,倒也能用,只是问题比 较多,趁着用在了公司的内部产品上面,做了一些修改,慢慢完善并稳定下来。

现在用 ObjC 比较多,面对古老的 C,是感觉 C 缺乏闭包,以及用于惰性计算的 block,相当致命,实在是完全不应该用来开发应用程序了。C 用来控制硬件,给 硬件同仁在这方面使用就好了。

从 socket、select 开始搭建系统,蛮开心的。