Geekなぺーじ : Rubyネットワークプログラミング
このコンテンツに含まれるページ一覧
簡単なTCPサーバとクライアント
ここでは、rubyを使ってTCPによる通信を行うプログラムを書く方法を説明したいと思います。
TCPとは
インターネットでの通信の90%以上はTCPによる...
TCPクライアント(エラー処理付き)
前述したTCPクライアント例は、処理の概要を示したかったのでエラー処理がありませんでした。
ここでは、簡単なエラー処理を追加したいと思...
何度も受信できるTCPサーバ
前述したTCPサーバ例は必要最低限の機能しかありませんでした。
必要最低限だけでは、色々と不具合があります。
例えば、前述したTCPサーバ例では...
TCPサーバ(acceptした相手の確認)
TCPサーバは接続準備(listen)をした後にクライアントからのコネクションをacceptしますが、どのクライアントからのコネクションをacceptしたかを知り...
UDPを使う
ここでは、rubyを使ってUDPによる通信をする方法を説明したいと思います。
UDPとは
UDPはデータが宛先に届いたかどうかをUDPは関知しないため、TCPと異なりデータの到着...
UDPでブロードキャストを使う
ここでは、UDPでブロードキャストパケットを送る方法を説明したいと思います。
UDPブロードキャスト送信サンプル
何もしない状態のUDPソケットで...
UDPでマルチキャストを使う(マルチキャストを送信する)
ここでは、UDPでマルチキャストパケットを送る方法を説明したいと思います。
マルチキャスト送信サンプル
まずは、マル...
UDPでマルチキャストを使う(マルチキャストを受信する)
ここでは、UDPでマルチキャストパケットを受信する方法を説明したいと思います。
マルチキャスト受信サンプル
以下のサ...
UDPでマルチキャストを使う(TTLを設定する)
ここでは、UDPでマルチキャストパケットを送信の際にTTL(Time To Live)を設定する方法を説明したいと思います。
TTLの設定
LinuxやWindowsの初...
簡単なHTTP GET(Net::HTTP)
ここでは、簡単にWebコンテンツを取得する方法を説明したいと思います。
サンプル
以下のサンプルは、HTTPのGETメソッドを使ってWebコンテンツを取得するサ...
HTTP HEADと全てのHTTPヘッダの表示(Net::HTTP)
ここでは、HTTP HEADメソッドを使う方法と、HTTPヘッダに記述してある内容を取得する方法を説明したいと思います。
サンプル
HTTPでは、HEA...
HTTP POST(Net::HTTP)
ここでは、HTTP POSTメソッドを使ってHTTP通信を行う方法を説明したいと思います。
サンプル
HTTPでは、POSTメソッド(HTTP的なメソッドであり、rubyのクラスメソッドで...
簡単なRSSクライアント
ここでは、タイトル名一覧を表示するだけの簡単なRSSクライアントを紹介します。
サンプル
以下のサンプルは、指定したURLからRSSを取得し、取得したXML...
IO::selectを使う
ここでは、IO::selectを使って複数のソケットからデータを受け取る方法を説明したいと思います。
IO::select
普通の状態では、recvなどはデータが受信できるまでブロ...
IPアドレスからホスト名への変換(gethostbyname)
ここでは、ホスト名をIPアドレスに変換する方法を説明したいと思います。
gethostbynameサンプル
www.yahoo.co.jpなどのホスト名(FQDN:Fully Qua...
IPアドレスからホスト名への変換(gethostbyaddr)
「127.0.0.1」などのIPアドレスに対応するホスト名を知りたい場合があると思います。
また、TCPサーバでacceptを行った時などに相手のIP...
IPアドレスからホスト名への変換(getaddrinfo)
gethostbynameではIPv4の名前解決しかできません。
IPv6の名前解決も行いたい場合には、getaddrinfoを利用する必要があります。
ここでは、get...
サービス名からポート番号を取得する(getservbyname)
ここでは、サービス名からポート番号を取得するgetservbynameを利用する方法を説明したいと思います。
getservbynameサンプル
HTTPは80...
getsockname
ここでは、ソケットからsockaddr情報を取得するgetsocknameの利用方法を説明したいと思います。
getsocknameサンプル
getsocknameを利用すると、そのソケットに関する接続情報な...
Win32 IPLHLPAPI GetInterfaceInfoを使う
ここでは、Windows環境でネットワークインターフェース情報を取得する方法を説明したいと思います。
Win32APIを利用するとWindowsのNative APIを使えま...
Win32環境でIPアドレスをネットマスクを取得
ここでは、Windows環境でネットワークインターフェースに登録されているIPアドレスとネットマスクを取得する方法を説明したいと思い...
Win32環境でマックアドレス取得
ここでは、Windows環境でマックアドレスを取得する方法を説明したいと思います。
サンプル
Win32API経由でIPHLPAPI(IP Helper API)を利用すると、マックア...
Win32環境でDHCPアドレスを解放
ここでは、Windows環境においてDHCPで取得したIPアドレスを解放する方法を説明したいと思います。
サンプル
Win32API経由でIPHLPAPI(IP Helper API)を利用する...
Win32環境でDHCPアドレスを取得
ここでは、Windows環境においてDHCPでIPアドレスを取得(もしくは更新)する方法を説明したいと思います。
サンプル
Win32API経由でIPHLPAPI(IP Helper API)を利...
PlaceEngineから位置を取得してGoogle Earthで表示
ここでは、PlaceEngineサービスを利用して無線LAN電波から現在位置情報を取得して、Google Earthに表示するサンプルを紹介したいと思いま...