UDPSocket
ユーディーピーソケット(標準ライブラリ)
意味 UDPプロトコルの通信を扱う
UDPSocketとは?
UDPSocketは、Rubyの標準ライブラリに含まれるクラスで、UDPプロトコルを使用したネットワーク通信を行うためのものです。UDPは、高速だが信頼性の低い通信プロトコルで、主にストリーミングや時間に敏感なアプリケーションで使用されます。
UDPSocketの具体的な使い方
UDPメッセージの送受信
require 'socket'
# UDPサーバーの設定
server = UDPSocket.new
server.bind('0.0.0.0', 12345)
puts "UDPサーバーがポート12345で起動しました"
# クライアントの設定
client = UDPSocket.new
# メッセージ送信
message = "こんにちは、UDPサーバー!"
client.send(message, 0, 'localhost', 12345)
puts "クライアントがメッセージを送信しました: #{message}"
# メッセージ受信
data, addr = server.recvfrom(1024)
puts "サーバーがメッセージを受信しました: #{data} (送信元: #{addr[2]}:#{addr[1]})"
# ソケットを閉じる
client.close
server.close
👇出力結果
UDPサーバーがポート12345で起動しました
クライアントがメッセージを送信しました: こんにちは、UDPサーバー!
サーバーがメッセージを受信しました: こんにちは、UDPサーバー! (送信元: 127.0.0.1:12345)
この例では、UDPSocketを使用してサーバーとクライアントを作成し、メッセージの送受信を行っています。サーバーは特定のポートでメッセージを待ち受け、クライアントがメッセージを送信すると、サーバーがそれを受信して表示します。UDPは接続レスの通信プロトコルであるため、TCPと比べてシンプルな実装になっています。
UDPブロードキャスト
require 'socket'
# ブロードキャスト用のUDPソケットを作成
socket = UDPSocket.new
socket.setsockopt(Socket::SOL_SOCKET, Socket::SO_BROADCAST, true)
# ブロードキャストアドレスとポート
broadcast_addr = '<broadcast>'
port = 12345
# ブロードキャストメッセージを送信
message = "これはブロードキャストメッセージです!"
socket.send(message, 0, broadcast_addr, port)
puts "ブロードキャストメッセージを送信しました: #{message}"
# ソケットを閉じる
socket.close
この例では、UDPSocketを使用してブロードキャストメッセージを送信しています。ブロードキャストを有効にするために、SO_BROADCASTオプションを設定しています。このメッセージは、ローカルネットワーク上のすべてのデバイスに送信されます。ブロードキャストは、ネットワーク上のすべてのデバイスに同時にメッセージを送信したい場合に使用されます。
UDPSocketに関するよくある質問
UDPSocketが学べる書籍の紹介
「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、RubyのUDPSocketやCSV、JSON、Net::HTTP、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。
よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。
HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。
Rubyを学べる「プログラミング単語帳」アプリ
プログラミング単語帳がアプリになりました!Rubyはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。
収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。
いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。
2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!
2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!