TCPSocket
ティーシーピーソケット(標準ライブラリ)
意味 TCP通信用のソケットクラス
TCPSocketとは?
TCPSocketは、TCP(Transmission Control Protocol)を使用してネットワーク通信を行うためのクラスです。信頼性の高い双方向通信を提供し、データの送受信を行います。Webサーバーとの通信など、多くのネットワークアプリケーションで使用されます。
TCPSocketの具体的な使い方
HTTPリクエストの送信
require 'socket'
begin
# TCPSocketを使用してHTTP接続を確立
socket = TCPSocket.new('example.com', 80)
# HTTPリクエストを送信
socket.print("GET / HTTP/1.1\r\nHost: example.com\r\n\r\n")
# レスポンスを読み取り
response = socket.read
# レスポンスを表示
puts "受信したHTTPレスポンス:"
puts response
ensure
# 接続を閉じる
socket.close if socket
end
👇出力結果
受信したHTTPレスポンス:
HTTP/1.1 200 OK
Age: 557638
Cache-Control: max-age=604800
Content-Type: text/html; charset=UTF-8
Date: Mon, 22 May 2023 10:30:15 GMT
Etag: "3147526947+ident"
Expires: Mon, 29 May 2023 10:30:15 GMT
Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT
Server: ECS (nyb/1D1C)
Vary: Accept-Encoding
X-Cache: HIT
Content-Length: 1256
<!doctype html>
<html>
<head>
<title>Example Domain</title>
...
</html>
この例では、TCPSocketを使用してexample.comのWebサーバー(ポート80)に接続し、HTTPリクエストを送信しています。サーバーからのレスポンスを読み取り、表示した後、接続を適切に閉じています。エラー処理も含まれており、接続が確実に閉じられるようになっています。
シンプルなチャットサーバーの実装
require 'socket'
server = TCPServer.new(2000)
puts "チャットサーバーが起動しました。ポート2000で接続を待機中..."
loop do
client = server.accept
Thread.new do
begin
puts "新しいクライアントが接続しました: #{client.peeraddr[2]}"
client.puts "チャットサーバーへようこそ!メッセージを入力してください。"
loop do
message = client.gets.chomp
break if message.downcase == 'exit'
puts "クライアントからのメッセージ: #{message}"
client.puts "サーバーがメッセージを受信しました: #{message}"
end
ensure
client.close
puts "クライアントとの接続を閉じました: #{client.peeraddr[2]}"
end
end
end
この例では、TCPSocketを使用して簡単なチャットサーバーを実装しています。サーバーはポート2000で接続を待ち受け、クライアントが接続すると新しいスレッドを作成してクライアントとの通信を処理します。クライアントは'exit'と入力するまでメッセージを送信し続けることができます。
TCPSocketに関するよくある質問
TCPSocketが学べる書籍の紹介
「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、RubyのTCPSocketやComplex、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」カテゴリーが追加されましました!