01 +高度な言語の基礎:1-9 [ネットワークプログラミングネットワークプログラミングの_day11]

day11ネットワークプログラミング[]

主なコンテンツ

  • ソフトウェアアーキテクチャCS / BS

  • 通信ネットワークの三つの要素

  • TCP通信

  • ソケットソケット

  • ServerSocketを

教育の目標

  • UDPとTCPプロトコルの特性を識別することができます
  • TCPプロトコルの下に2人の一般的なクラス名を言うことができます
  • TCPプロトコルのプログラムの下でのデータ伝送の文字列を書くことができるように
  • TCPプロトコルの下ケースファイルのアップロードを理解します
  • TCPプロトコルの下ケースを理解することができる2

第一章ネットワークプログラミングエントリー

1.1ソフトウェアアーキテクチャ

C / Sの構造:クライアント/サーバー構造と呼ばれ、クライアント・サーバ・アーキテクチャを指します。一般的なプログラムは、QQ、サンダーや他のソフトウェアを持っています。

B / Sの構造:ブラウザ/サーバ構造と呼ばれるブラウザとサーバの構造を指します。一般的なブラウザグーグル、Firefoxとそうで。

どちらのアーキテクチャは、独自の利点がありますが、どのようなアーキテクチャに関係なく、ネットワークのサポートなしで行うことができます。ネットワークプログラミングは、二つのコンピュータの通信プログラムを達成するために、特定のプロトコルです。

1.2ネットワークの通信プロトコル

  • ネットワーク通信プロトコル:コンピュータネットワークを介して複数のコンピュータが一定のルールを遵守するための接続と通信の必要性を作り、同じネットワークのコンピュータにある接続を実現することを可能にする、道路の車の中で運転のようである道路の同じ規則に従わなければなりません。コンピュータネットワークでは、接続及びこれらの規則を通信は、当事者は、データ交換を完了するために従わなければならない通信を、均一な規定の伝送フォーマット、伝送速度、および他のステップからなるネットワーク通信プロトコル、そのデータと呼ばれます。

  • TCP / IPプロトコル:伝送制御プロトコル/インターネットプロトコル(伝送制御プロトコル/インターネット・プロトコル) 、 インターネットは最も基本的で広く使用されているプロトコルです。これは、コンピュータがインターネットに接続する方法を定義し、どのように標準的なデータ転送を挟ん。それは処理のための内部データ通信プロトコルのシリーズが含まれ、階層モデル4層を使用し、各レイヤプロトコルは、それらのニーズを完了するために設けられ、その下位層を呼び出します。

TCP / IPプロトコル、上図は、4つのアプリケーション層、トランスポート層、ネットワーク層、リンク層、異なる通信機能を担う各あります。 

リンク層:リンク層は物理伝送チャネルを定義するために使用され、それは通常、特定のプロトコル・ネットワーク用の駆動装置に接続された、例えば、光学ドライブ、ケーブルが提供さ。 

ネットワーク層:ネットワーク層は、主に伝送されるデータパケットのために使用されるTCP / IPプロトコルの核心である先のコンピュータまたはネットワークにパケットデータを送信します。 

トランスポート層:ネットワーク通信時の通信ネットワークは、TCPプロトコルを使用してもよいことを主なプログラムは、UDPプロトコルを使用することができます。 

アプリケーション層:例えばHTTPプロトコル、FTPプロトコルとして、プロトコルのアプリケーションのために主に責任を負います。

ソフトウェアアーキテクチャ02_、03_ネットワーク通信プロトコル、ネットワーク通信プロトコル種別04 _、05_IPアドレス、ポート番号06_

1.3プロトコルの分類

通信プロトコルは、非常に複雑であり、java.netパッケージは、通信の低レベルの詳細を提供するクラスおよびインタフェースを含んでいます。我々は関係なく、通信の詳細の、Webアプリケーション開発に特化し、これらのクラスやインタフェースを使用することができます。

java.net パッケージには2つの一般的なネットワークプロトコルをサポートしています。

  • UDP :ユーザデータグラムプロトコル(ユーザデータグラムプロトコル)。UDPはコネクションレスプロトコル、すなわち、データ送信、データ送信と受信端は、論理的な接続を確立していません。簡潔には、コンピュータが別のコンピュータにデータを送信する場合、送信側は、受信機が存在するかどうか確認をしない、それがデータを送信しますが、同一のデータが受信端で受信される場合、フィードバックは送信側に受信されませんデータへ。

    UDPプロトコルの使用は、このような状況は、たとえ時折一つまたは二つのパケットが失わので、それは通常、そのようなUDPプロトコルを使用するには、ビデオ会議などのオーディオ、ビデオ、および一般的なデータ伝送のために使用され、少し資源、高い通信効率を消費し、また意志結果はあまり影響を与え受け取ります。

    しかし、UDPはコネクション指向であるため、我々は保証データの整合できない、UDPプロトコルを使用してデータを送信し、そのための重要なデータを送信するときときは、UDPプロトコルを使用することは推奨されません。図に示すように、UDP交換プロセス。

特徴:データは64キロバイト未満に制限されているが、この範囲を超えて送信することができません。

ネットワーク伝送の基本単位(データグラム)データグラム

  • TCP :伝送制御プロトコル(伝送制御プロトコル)。TCPプロトコルは、接続指向の論理接続送信を確立するためにデータを送信し、終了を受信する前に、即ち、プロトコル、および、データを送信し、これは、2台のコンピュータ間で信頼性の高いエラーのないデータ転送を提供します。

    TCP接続が通過する各接続のニーズを作成し、明確なクライアントとサーバー、クライアントからサーバーへの接続要求でなければなりません「3ウェイハンドシェイク。」

    • スリーウェイハンドシェイク:TCPプロトコル、信頼性の高い接続を確保するために、データ、クライアントとサーバを送信するための準備の三段階の間の相互作用。

      • まず握手、クライアントは、サーバーが受信確認を待って、サーバーへの接続要求を送信します。

      • 第二にハンドシェイクは、クライアントへの応答の背中を送信するために、サーバは、クライアントは、通知の接続要求を受信します。

      • 第三に、ハンドシェイクは、クライアントは再び、サーバに確認メッセージを送信し、接続を確認してください。全体の相互作用プロセスを以下に示します。

                               

 

完全な3ウェイハンドシェイクは、接続が確立され、クライアントとサーバがデータ転送を開始することができます。この接続指向特性により、TCPプロトコルは、データ伝送のセキュリティを保証することができ、それが広く使用されているため、このようなファイルのダウンロードなど、ウェブページを閲覧。

三つの要素1.4ネットワークプログラミング

合意

  • プロトコル:コンピュータネットワーク通信が遵守しなければならないルールが導入された、それらを繰り返すことはしません。

IPアドレス

  • IPアドレス:アドレスインターネットプロトコルアドレス(インターネットプロトコルアドレス)、一般的にIPとして知られています。IPアドレスは固有の番号を行うためのコンピュータ機器のネットワークを与えるために使用されます。私たちは「1つのコール」に「PC」を持っている場合は、「IPアドレス」に相当する「電話番号。」

  • IPv4が:表されるように32ビットのバイナリ数は、一般的に、4つのバイトに分割されているa.b.c.d形で、例えば、192.168.65.100a、b、c、dは0〜255の間の10進整数であることを特徴とする請求は、42億まで表すことができます。

よく使用されるコマンド:ローカルIPアドレス、コンソールの種類を確認IPCONFIG    、チェックネットワーク接続、コンソールのタイプ:ピング スペースIPアドレス、特別なIPアドレス:ローカルIPアドレス:127.0.0.1localhost

ポート番号

通信ネットワークは、通信は、自然の中で二つのプロセス(アプリケーション)です。ネットワークトラフィックは、どのようにこれらのプロセスを区別する際に、各コンピュータには、進捗状況をたくさん持っていますか?

場合IPアドレスが一意のネットワーク上のデバイスを識別することができるので、ポート番号は一意のデバイスプロセス(アプリケーション)を識別することができます。

  • ポート番号:2バイトの整数、それは0から65535の範囲ですその中で、いくつかのよく知られているネットワークサービスとアプリケーションのための0と1023の間のポート番号は、一般的なアプリケーションのニーズは1024以上のポート番号を使用します。別のサービスまたはアプリケーションによって使用されるポート番号が占有した場合、現在のプログラムが起動に失敗した原因となります。

使用协议+ IP地址+ 端口号三元組成物、プロセスは、その後、プロセス間通信は、他のプロセスと相互作用するように、この識別を使用することができ、ネットワークで識別することができます。


概要(上)07_TCP通信の概要(低級)08_TCP通信

第II章TCP通信プログラム

2.1概要

TCP通信2台のコンピュータ、通信の両端間のデータ交換を可能にし、厳密なクライアント(クライアント)とサーバー(サーバー)に分割する必要があります。

通信ステップの終了します。

  1. サーバプログラムは、事前に起動し、接続するクライアントを待つ必要があります。

  2. 積極的にサーバーに接続されたクライアントは、接続が通信するために成功しています。サーバーは、クライアントを接続するためのイニシアチブを取ることができません。

Javaでは、それはTCP通信プログラムを実装するために2つのクラスを提供します。

  1. クライアント:クラスが表します。作成オブジェクトを、サーバへの接続要求を送信し、要求に対するサーバの応答は、両方の通信を開始するための接続を確立します。java.net.SocketSocket

  2. サーバー:クラスが表します。作成サービスを開くことと等価であり、クライアントの接続を待機オブジェクトを、。java.net.ServerSocketServerSocket

2.2 Socketクラス

Socket クラス:このクラスを実装し、クライアントソケット、ソケットは、2つのデバイス間の通信のエンドポイントを指します。

コンストラクタ

  • public Socket(String host, int port):ソケットオブジェクトを作成し、それが指定されたホスト上の指定されたポート番号に接続します。指定されたホストがnull、ループバックアドレスに指定したアドレスに相当します。

    ヒント:ループバックアドレス(127.xxx)は、ローカルマシンのプロセス間通信などに関係なく、どのようなプログラム、せずに、すぐに戻り、データを送信するためにループバックアドレスを使用することによってだけでなく、主にネットワーク間のソフトウェアのテストのために、ローカルループバックアドレス(ループバックアドレス)であります任意のネットワーク伝送。

構成例として、次のとおりです。

ソケットクライアント= 新しいソケット("127.0.0.1"、6666);

メンバー方法

  • public InputStream getInputStream() :このソケットの入力ストリームを返します。

    • このScoketに関連するチャネルを有する場合、生成された操作入力ストリームの全ては、チャネルに関連付けられています。

    • クローズ生成されたInputStreamが関連付けられているソケットを閉じます。

  • public OutputStream getOutputStream() :このソケットの出力ストリームを返します。

    • このScoketに関連するチャネルを有する場合、生成された操作のOutputStreamの全ては、このチャネルに関連付けられています。

    • クローズ生成されたOutputStreamは、関連付けられたソケットを閉じます。

  • public void close() :このソケットを閉じます。

    • ソケットが閉じられると、それは再利用することはできません。

    • 閉じるこのソケットは、関連付けられたInputStreamとOutputStreamを閉じます。

  • public void shutdownOutput() :このソケットの出力ストリームを無効にします。

    • 以前に書き込まれたデータが出力ストリームを終了する、送信します。

    2.3のServerSocketクラス

ServerSocketクラス:このクラスを実装するサーバソケット、ネットワークを介してオブジェクト待ち要求。

コンストラクタ

  • public ServerSocket(int port) :使用ServerSocketオブジェクトを作成し、このコンストラクタは、指定したポート番号にバインドすることができ、パラメータポートは、ポート番号です。

構成例として、次のとおりです。

ServerSocket サーバー= 新しいServerSocketを(6666);

メンバー方法

  • public Socket accept():をリッスンし、接続を受け付けるには、新しいソケットオブジェクトを返し、クライアントのために通信します。この方法はされていますブロックされた接続まで。

 09_TCP通信クライアントコードの実装、サーバ側コード10_TCP通信を実現します

 

================================================== =====================

終わり

おすすめ

転載: www.cnblogs.com/MarlonKang/p/11895422.html