「Working With TCP Sockets」を読んだ

December 31, 2013

大切なことはここにすべて載っています。
Working With TCP Socketsを読んだ - $shibayu36->blog;

これも読みました。
電子書籍「irbから学ぶRubyの並列処理 ~ forkからWebSocketまで」EPUB版をGumroadから出版しました!

100円で完結にまとめられていて最高でした。

コード参考
EventMachine: scalable non-blocking i/o in ruby

send(2)のマニュアルページ
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man2/sendmsg.2.html

ソケットの流れ

  1. socket(2) ソケットの生成
  2. bind(2) ソケットとポートの結合
  3. listen(2) 接続キューの作成(サーバ)
  4. accept(2) 接続受け入れ(サーバ)
  5. send(2), write(2) パケット送信
  6. recv(2), read(2) パケット受信
  7. close ソケットの終了

基礎について改めて勉強になった。accept_loop便利だった。
IO.selectの部分はepollとかkqueueでやってるんじゃないのかな。
EventMachineどうなってるんだろう。って思って調べたら

  • ext/project.h
#ifdef HAVE_EPOLL
#include 
#endif

#ifdef HAVE_KQUEUE
#include 
#include 
#endif

#ifdef HAVE_INOTIFY
#include 
#endif

ってやってた。

この人の本はわかりやすくていい。