タグ

tcpに関するtaka-junのブックマーク (2)

  • Ruby でソケット通信 - ~fumi/ChangeLog

    仕事で(その仕事が自分にまわってくることはないだろうけど). ソケット通信のプログラムが必要になるらしいので, ちょっと Ruby で書いてみた. クライアント #!/usr/bin/ruby require 'socket' s = TCPSocket.open("localhost", 12345) s.puts("test") s.close localhost の port 12345 で待ち受けているサーバに, "test" という文字列を送る. サーバ #!/usr/bin/ruby require 'socket' require 'thread' gs = TCPServer.open(12345) addr = gs.addr addr.shift printf("server is on %s\n", addr.join(":")) while true Thread.

  • はやいTCPサーバの書き方 - nyaxtのPC作業ログ

    cagra高速化にあたってのノウハウを一部公開してみます。また明日校正/更新します。つっこみ待ちです。 select(2)の代わりにepoll_wait(2), kqueue, /dev/epoll等を使う 他に山ほど解説ページがあるので略 大量のディスクリプタを処理するようなサーバの場合、多少効果があるかもしれません。しかし、クライアント数が少ない場合、劇的な性能の向上は見込めないとおもいます。クライアント数が多い場合は、1セッション1スレッドなモデルではOS側のタスクスイッチングのオーバーヘッドが効いてくることも多いです。クライアント数を増やすには複数のセッションを1スレッドで処理できるようにすると良いです。実装にあたっては、non-blocking ioを活用すると効果的です。 TCP_NODELAYを設定する Nagleアルゴリズムをオフにします。多少応答性が良くなります。 これっ

    はやいTCPサーバの書き方 - nyaxtのPC作業ログ
  • 1