さくらんぼのlambda日記

lambdaちっくなことからゲーム開発までいろいろ書きます。

Lispでネットワークプログラム

SBCLからネットワークを抽象的に扱えるものを探してみた。

clispから

CLOCCの中のPORTというライブラリが使える。
しかし、SBCLはサポートしていない。

色々あさった結果

sb-bsd-socket

SBCLには標準でbsd-socketに関するライブラリが入っているのでそれを使う。

acl-compat

Allegro Common LispにはaserveというWeb開発向けのサーバなどのセットが入っている。
それの互換レイヤ。

(asdf-install:install :acl-compat)
(asdf-install:install :aserve)

これで色々開発できるらしい。
ドキュメントはAllegroのマニュアルを読むのが良さそう。

使い方であるが

(in-package :acl-compat.socket)

これでソケット関連の機能は使える。

(lookup-hostname "light-of-moe.ddo.jp")
==>#(192 168 1 11)

このような感じ。

これで一応通信は可能になった。