タグ

socketとhaskellに関するstarsky5のブックマーク (2)

  • エコーサーバー改良版

    takada-atです。 前回HaskellおよびRubyでエコーサーバーを発表したところ、エコーサーバーおよびネットワークプログラミングの基礎について、社内でいろいろな指摘を受けました。 今回は、指摘された点をひとつひとつ改良していきたいと思います。 リンク: Haskellでエコーサーバー ポート番号 実は恥しながらRFCにエコーサーバーの規定があるのを知らなかったのですが、一般に「エコーサーバー」と言った場合、正式には「RFC862 - Echo Protocol」のサーバー実装を指すことが多いようです。 http://www.faqs.org/rfcs/rfc862.html RFC862では、エコープロトコルのポート番号に 7 を割り当てています。 A server listens for TCP connections on TCP port 7. もちろん1024以下の

  • Haskellでエコーサーバー

    Haskellで、TCPのサーバーを書いてみたいと思い、手始めにエコーサーバーを書いてみました。 エコーサーバーというのは、クライアントからの入力をそのまま返すサーバーです。 以下の記事を参考にもっと簡単なものを作ってみます。 A simple TCP server | The Haskell Sequence main = withSocketsDo $ do [p] main部分です。 ソケットを開いてlistenします。 acceptLoop soc = do (hd, host, port) mainのあとの処理です。 クライアントがきたら、accept(受け付け)して、新しいスレッドを生成し、そちらに処理を任せます。 新しいクラアントに対応しつづけるため、処理が終わってはいけませんので、こちらは無限ループを続けます。 echoLoop hd = do sequenc

  • 1