Socket
ソケット(標準ライブラリ)
意味 ネットワーク通信の基本クラス
Socketとは?
Socketは、ネットワーク通信を行うための基本的なクラスです。IPアドレスとポート番号を使って、異なるコンピュータ間で双方向通信を可能にします。TCPやUDPなど、様々なプロトコルでの通信に対応しています。
Socketの具体的な使い方
シンプルなTCPサーバーの例
require 'socket'
server = TCPServer.new(2000)
puts 'サーバーが起動しました。ポート2000で接続を待機中...'
loop do
client = server.accept
puts "クライアント#{client.peeraddr[2]}が接続しました。"
client.puts 'こんにちは!サーバーへようこそ。'
client.puts '現在の時刻は' + Time.now.strftime('%Y年%m月%d日 %H:%M:%S') + 'です。'
client.close
puts 'クライアントとの接続を閉じました。'
end
👇出力結果
サーバーが起動しました。ポート2000で接続を待機中...
クライアント127.0.0.1が接続しました。
クライアントとの接続を閉じました。
この例では、ポート2000でTCPサーバーを起動し、クライアントからの接続を待ち受けます。接続があると、現在の時刻を含むメッセージを送信し、接続を閉じます。サーバーは無限ループで動作し、複数のクライアントに対応できます。
シンプルなTCPクライアントの例
require 'socket'
begin
puts 'サーバーに接続しています...'
client = TCPSocket.new('localhost', 2000)
puts 'サーバーに接続しました。'
while line = client.gets
puts "サーバーからのメッセージ: #{line.chomp}"
end
rescue Errno::ECONNREFUSED
puts 'サーバーに接続できませんでした。サーバーが起動しているか確認してください。'
ensure
client.close if client
puts 'サーバーとの接続を閉じました。'
end
👇出力結果
サーバーに接続しています...
サーバーに接続しました。
サーバーからのメッセージ: こんにちは!サーバーへようこそ。
サーバーからのメッセージ: 現在の時刻は2023年5月15日 10:30:45です。
サーバーとの接続を閉じました。
この例では、localhost上のポート2000に接続するTCPクライアントを作成します。サーバーからのメッセージを受信し、表示します。エラー処理も含まれており、サーバーに接続できない場合にはエラーメッセージを表示します。
Socketに関するよくある質問
Socketが学べる書籍の紹介
「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、RubyのSocketやDate、Net::HTTP、FileUtils、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。
よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。
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」カテゴリーが追加されましました!