拓也Rubyガイド今回の記事では、Rubyを使った基礎的なネットワーク通信について解説します。ウェブページを閲覧する際使われるHTTPも、サーバにログインする際使われるSSHも、TCPの上に実装されているプロトコルです。TCPには通信の信頼性を上げるための仕組みが組み込まれています。通信中にデータが失われたり連続して送ったデータが受け取り側で順番が狂ってしまったり、といった事態が発生する可能性があります。いった時に適切な順序に並び替えたり「失敗したからさっきのもう一回送って」とリクエストしてくれるのがTCPプロトコルです。RubyからTCP通信を行う基板となるクラスはTCPSocketです。TCPSocketを継承したTCPServerクラスが用意されているので、これを使ってまずはTCP通信を受け取るサーバを作ってみましょう。TCPサーバ2000番ポートでTCPServerを作成した後、loopを開始してTCPServer#acceptメソッドで接続を待ちます。相手が接続して来たら、TCPServer#acceptは相手のsocketを返します。あとはそのsocketからデータが送られてくるのを待ち(IO#gets)、送られてきたデータに「:D」を付けてそのまま返すプログラムです。このサーバに対してtelnetで接続して対話してみます。:D」がサーバから帰ってきた文字列です。想定通り動いていることがわかります。telnetコマンドを使っても十分役割は果たせるのですが、せっかくなので次のページではクライアント側もRubyで作成してみましょう。About公式SNS日々の生活や仕事を楽しむための情報を毎日お届けします。