現在主流になっているソケットAPIはBSDスタイルだと思う。というか、他を知らない。恐らく、このAPIの本質はUNIXの「全てはファイルである」だと思う。なのでソケット自体がファイルディスクリプタだし、わざわざrecv/sendとか使わなくても、read/writeで読めたりする。
Wikipediaを見ると、オリジナルのAPI自体は7つしかない。どの段階で物事が簡単じゃなくなったのか分からないけど(多分IPv6だと思う)、 現在ではいろいろ解決しなければいけないものがありそう。とりあえずのメモとして、どれくらい自分がサポートしたいかを考えることにする。
思いつくままに箇条書き
- Wikipediaの7つのAPIの内、gethostbynameとgethostbyaddrを除く5つはサポート
- ソケットのみノンブロッキングI/Oをサポート
- select相当のAPI
- fdsetがいるけど、どうするべ?
- addrinfoは便利そうなのでうまいこと扱えるように
- Unix domain socketはサポートしない
- Windowsで提供できない(ことはないけど、面倒な)のでカット
- JavaみたいにServerSocketとClientSocketを分けた方がいいかな?
- IPアドレスの扱いはどうする?
No comments:
Post a Comment