インターネットソケットでネットワークプログラミングを学ぶ

開示: あなたのサポートはサイトの運営を維持するのに役立ちます!このページで推奨する一部のサービスについては、紹介料を稼ぎます.


インターネットソケットの紹介

「インターネットソケット」は、一般にインターネットユーザーには見えませんが、ほとんどすべてのWebアプリケーションのバックボーンです。ネットワークソケットを効果的に使用すると、サーバーアプリケーションは、WebページにアクセスするWebブラウザーなどのクライアントアプリケーションと通信できます。.

すべてのインターネットソケットは、いくつかの特性、ローカルソケットアドレスおよびプロトコルによって定義できます。使用される最も一般的なポートの1つはTCPポート80で、これを介してハイパーテキスト転送プロトコル(HTTP)が送信され、Webブラウジングが可能になります.

7層OSIモデル

(ネットワーキングオニオンのレイヤー)

コンピュータネットワーキングのすべての概念を理解しなくても、インターネットソケットを使用して機能的に理解できます。ただし、7層OSIモデルをしっかりと把握することで、ソケットの理解を少し簡単にするための小さなコンテキストを提供できます。.

  • レイヤー1 –物理レイヤー –ビットストリームが実際に電気、光、または無線としてネットワークのハードウェアを通過する場所.
  • レイヤー2 –データリンク –エンコードされたデータパケットがここに送信され、メディアアクセス制御(MAC)および論理リンク制御(LLC)レイヤーがそれぞれ識別と同期を決定します。.
  • レイヤー3 –ネットワークレイヤー –ここでルーティングとスイッチングが行われ、「仮想回路」がセットアップされ、ノード間でデータがプッシュされ、アドレッシングとパケットフローが処理されます。これはあなたのIPアドレスが存在する場所です.
  • レイヤ4-トランスポートレイヤ –これは、任意の2つのホスト間の透過的なデータフローであり、エラー、データ回復、および情報交換を管理します。ここにTCPとUDPが存在します。 WebソケットとHTTPはすべてここに収まります!
  • レイヤー5 –セッションレイヤー –これは、アプリケーション間の単一の接続、交換の調整、およびプロセスフローの管理に関係します。たとえば、WebサーバーまたはSQLサーバーがここで動作している可能性があります.
  • レイヤー6 –プレゼンテーションレイヤー –これがデータのフォーマットと表現方法です。だからここであなたは暗号化を見つけるでしょう & ファイルタイプ.
  • レイヤー7 –アプリケーションレイヤー –これは、ユーザーが下にあるすべてのレイヤーと対話するためのコントロールが存在する場所です。 WebブラウザーまたはFTPクライアントはレイヤー7にあります。.

ネットワークソケットは元々、1980年代初頭のBerkely Socketsプロジェクトに基づいた「ソケットAPI」の一部として登場しました。これは元々、Unixオペレーティングシステムのネットワークインターフェイスの一部としてCに実装されていました。.

1989年までに、Berkely Sockets Distribution(BSD)はオープンソースになり、MicrosoftプロジェクトWinsockに影響を与えました。 BSD APIはさらに他のソケットAPIに影響を与え、今日私たちが知っているように商用Webを形成するのに役立ちました.

データを送信する別の方法

インターネットアプリケーションからデータを送信する方法は複数あります。インターネットソケットは一方向にすぎません。ネットワークシステムのさまざまなレベルで動作する他のいくつかを次に示します.

これらにはそれぞれ長所と短所があり、インターネットソケットについて学習している場合は調査する価値があります。

  • ソケットストリーム –信頼性の高いデータフローのためにTCPに実装されたインターネットソケット接続.
  • データグラム –宛先への「保証」配信がない、UDP経由で送信される自己完結型メッセージ.
  • RESTful呼び出し – RESTは、Representational State Transferを意味し、カプセル化された通信のためのHTTPの拡張です。.
  • 石鹸 – RESTと同様に、HTTPおよびマークアップファイルを渡すためのメッセージングサービスです。.

オプションごとに実装方法が異なります。 RESTはWebフォームではかなり標準的ですが、リアルタイムコミュニケーションやストリーミングコンテンツにはソケットストリーミングが推奨されます。.

始めるための場所

通常、Webソケットを使用するには、始める前にプログラミングの基本的な知識が必要です。すべての主要言語には、このタイプの通信用のソケットAPIの実装がいくつかあるため、使用する言語はそれほど重要ではありません。.

おそらく、最初に行うべき最善のことは、コアコンセプトに慣れることです。.

  • コンピュータネットワークソケット–ワシントン大学のコンピュータサイエンス講義
  • Beej’s Guide for Network Programming Using Internet Sockets –無料の電子書籍
  • ソケットの違いに関するCiscoビデオ & Webポート
  • CのTCP / IPソケット:プログラマーのための実践ガイド–ベイラー大学プレゼンテーション.

オンラインコース

いくつかの便利なリンクでは不十分な場合があります。 Webソケットを本当に使いこなし、ネットワークステアリングの深いレベルでそれらを制御するには、コースを受講する方が現実的かもしれません。.

  • Coursera –ワシントン大学–コンピュータネットワーク
  • Udemy –コーダー向けC#.NETでのTCP / IPソケットプログラミング & 学生
  • Lynda.com – Webソケット入門.

プログラミング言語別のライブラリ

優先言語がすでにある場合は、Webソケットから始めるのに最適な場所は、既に快適なドメイン内で利用可能なライブラリとリソースを使用することです。.

ここでは、プログラミング言語によるリソースと例の分離を示します.

JavaScriptを使用したWebソケット

  • Socket.io – NodeJSのライブラリ
  • Websocket NodeJSモジュール
  • Sock.JS githubライブラリ.

JavaでのWebソケット

  • Java EE 7:WebSocket、JavaScript、HTML5を使用したWebアプリケーションの構築
  • Apache Tomcat 7 – Apache WebサーバーのWebソケット実装の説明
  • NetBeans IDE – Java WebSocket APIの使用に関する説明 .

C / CのWebソケット++

  • ZaphoydによるWebSocket ++ライブラリ
  • C ++ Winsock Websocketサーバー
  • WebToolkit(Wt)C ++ホームページ
  • Qt WebソケットWiki.

C#のWebソケット & .ネット

  • .NETフレームワークのWebSocketクラス
  • Websocket-Sharpオープンソースライブラリ.

PythonのWebソケット

  • IBM developerWorksによるPythonでのソケットプログラミング
  • Python.orgのソケットプログラミングHOWTO
  • Pythonネットワークプログラミング– TutorialsPoint.

RubyのWebソケット

  • ruby-doc.orgのソケットクラスライブラリページ
  • PrubicingRuby Githubページのソケットの紹介
  • Rubyのパケットに関するIBM DeveloperWorks PDF.

Q & あ

Q. Webポートとインターネットソケットの違いは何ですか?

あ. これはかなり技術的な回答になる可能性がありますが、表面的には、WebソケットはTCP接続のエンドポイントであり、ポートは「仮想化識別子」であり、WebポートにするためにIPアドレスが接続されていない限り、ネットワークの一部とは見なされません。.

「平易な英語」では、「ポート」は特定のデバイスにある番号付きのアドレスであり、「ソケット」は通信中のアプリケーションに関連付けられています。アプリケーションがなければ、「ソケット」はありません。

Q. WebソケットではなくRESTful呼び出しをいつ使用すればよいですか?

あ. 通常、RESTful呼び出しは、クリックイベントによってトリガーされるWebフォームのような、より小さなデータに対してより有用です。 Webソケットでは、接続を介してデータをストリーミングできるように「ハンドシェイク」を設定する必要があります.

これは通常、オンラインビデオなどの大きなファイルのストリーミングやリアルタイムコミュニケーションに最適です。.

Q.これらの概念はすべて現実的ではなく、私には難しいと思います。?

あ. それは完全にあなた次第です! Webソケットを使用する前に、少なくとも1つのプログラミング言語に精通している必要がありますが、言語とソケットの両方を習得できる優れたインストラクターまたはプロジェクトをいつでも見つけることができます。.

ただ忍耐強く、楽観的にしてください。Webソケットは扱いにくい場合がありますが、非常に便利です。!

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map