現在主流になっているソケット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