タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

socketに関するkarupaneruraのブックマーク (3)

  • POSIX::Socketのテストがこける理由 - Shohei Yoshida's Diary

    Monoceros等で利用される POSIX::Socketのテストが こける理由のメモ. RTに登録すべきなんだろうけど、手元の環境ではうまくいかないので ここにメモっておきます(サーバサイドの問題??). 問題となるテスト t/10send.tの 2つめのテストが通りません(#2となっているテスト) sub setsockopt_test($) { my ($buflen) = @_; my $sock; my $ret; $sock = _socket(AF_INET, SOCK_DGRAM, 0) or die "socket: $!\n"; my $rv1 = _setsockopt($sock, SOL_SOCKET, SO_RCVBUF, pack("L", $buflen)); my $rv2 = _getsockopt($sock, SOL_SOCKET, SO_RCVB

    POSIX::Socketのテストがこける理由 - Shohei Yoshida's Diary
  • 親子関係のないプロセス間でファイルディスクリプタを共有する - tmtms のメモ

    UNIX や Linux でプロセス間でファイルディスクリプタを共有するには、ファイルディスクリプタを作成後に fork して親子間で共有するという方法が良く取られますが、UNIXドメインソケットを使って、親子関係のないプロセス間でファイルディスクリプタを受け渡すことができます。 C だといろいろ面倒なのですが、Ruby だと UNIXSocket#send_io と #recv_io を使って簡単に実現できます。 sender.rb require 'socket' File.unlink 'socket' rescue nil sock = UNIXServer.new 'socket' s = sock.accept f = File.open ARGV.first s.send_io f receiver.rb require 'socket' sock = UNIXSocket.

    親子関係のないプロセス間でファイルディスクリプタを共有する - tmtms のメモ
  • Linux kernel 3.9 の新機能 SO_REUSEPORT を試してみる - nigakyのブログ

    Linux kernel 3.9 のマージウィンドウでは SO_REUSEPORT というソケットオプションがマージされました。 Merge branch 'soreuseport' · c617f39 · torvalds/linux · GitHub これは同一ポートに複数のリスナー(listen ソケット)が bind できるようになるというもので、Webサーバなど単一のポートに多くのコネクションが来るようなワークロードで、複数プロセスでうまく負荷分散ができるようになるそうです。 (これまでだと一人がaccept()してそれぞれの worker に渡すというようなモデルがありましたが、これでは accept() する部分がボトルネックになってしまいがちでした。) BSDでは元々 SO_REUSEPORT オプションはあったようですが、マルチキャスト通信で使うもののようです。Linux

    Linux kernel 3.9 の新機能 SO_REUSEPORT を試してみる - nigakyのブログ
  • 1