皆さま、こんにちは! 今、独学でサーバについて勉強しています!
突然ですが、「ソケットって何? ストリームって何? 結局どういうことなの?」 ってなっていませんか?
まさしく今の私です、、笑 自分なりに簡単にまとめて将来見返せる記事にしたいと思い、今回書きました!
1. クライアントとサーバの関係をおさらい
まずは、クライアントとサーバの関係を整理します。
- クライアント: サービスを「お願い」する側(例:Webブラウザ)
- サーバ: サービスを「提供」する側(例:Webサイト)
クライアントがサーバに「〇〇が見たい!」とお願いすると、サーバは「はいよ!」とデータを返す。これが基本的な流れになります。
2. 「パイプ」と「ソケット」の違いをイメージで理解!
-
パイプ: 一方向の通信路(クライアント → サーバ)
- 例:手紙をポストに入れる(一方通行)
-
ソケット: 双方向の通信路(クライアント ⇆ サーバ)
- 例:電話で会話する(双方向)
「1つの接続でデータの送信と受信を行いたい場合にソケットを使用する」
まさに電話と同じで、ソケットを使えば、クライアントとサーバがリアルタイムで、双方向にデータをやり取りすることができます。
3. ストリームって何? データの流れをイメージ化!
ソケットの説明で出てくる「ストリーム」。これもよくわかりません。。笑
-
ストリーム: クライアントとサーバの間で確立された、信頼性のある連続的なデータの流れ
- 例:川の流れのように、途切れることなくデータが流れていくイメージ
4. なぜソケットが必要なの? 具体例で理解!
ソケットは、クライアントとサーバがリアルタイムで、双方向にデータをやり取りする必要がある場合に必須です。
- オンラインゲーム: プレイヤーの動きをリアルタイムでサーバに伝え、他のプレイヤーの動きをサーバから受け取る
- チャットアプリ: メッセージをリアルタイムで相手に送り、相手からのメッセージをリアルタイムで受け取る
- Webサーバ: クライアントからのリクエストに応じて、Webページや画像などのデータを送信する
5. ソケット通信の仕組みをざっくり解説!
- ソケットの作成: クライアントとサーバがそれぞれソケットを作成
- 接続: クライアントがサーバのソケットに接続を要求
- データ送受信: 接続が確立したら、ストリームを通じてデータを送受信
- 接続終了: データ送受信が終わったら、接続を終了
6. まとめ:ソケットは双方向通信の要!
ソケットは、クライアントとサーバがリアルタイムでデータをやり取りするための、非常に重要な技術になります。
次回はソケットの種類について書こうと思います!