ネットワークプログラミング
1 、ネットワークプログラミングの概要
コンピュータ・ネットワーク:これは、ネットワーク・オペレーティング・システム、ネットワーク管理ソフトウェア、およびネットワーク通信プロトコルの管理と連携して、異なる地理的な複数のコンピュータと通信回線を介して接続された独立した機能を有する周辺機器を指すリソース共有、およびコンピュータシステムの情報転送。
ネットワークプログラミングは:データ交換のためのネットワークによって相互接続された異なるコンピュータ上で実行中のアプリケーション間で達成するために使用されます。
2 、ネットワークモデル
ルール何と通信するためのコンピュータネットワークの間に、それはネットワークモデルの問題を研究することです。
一般的にネットワークモデルを指し、
OSI(開放型システム間相互接続Open Systems Interconnection)参照モデル(7層モデル)
TCP / IP参照モデル
3 、通信ネットワークの三つの要素
IPアドレス:InetAddressの
ネットワーク機器の識別、覚えやすい、ホスト名が提供されています
ポート番号:
識別する論理アドレス、異なるプロセスを識別するために使用されるプロセス
プロトコルを転送します。一般的な通信プロトコルのルール:TCP、UDP。
4 、IPのアドレス
ネットワークコンピュータが互いに通信することができ得るために、TCP / IPプロトコルで識別番号によって送信されたデータを受信するように指定されたコンピュータとコンピュータを識別するために、各コンピュータの識別番号を指定する必要があり、IP識別番号でありますアドレス。
そこで、我々は、取得したIPアドレスを操作する場合は?IPアドレスの買収や操作を容易にするために、Javaは、当社の使用するクラスのInetAddressを提供します。
。5 、InetAddressののクラスを使用
コンストラクタは、その後、どのように機能するクラスが提供しますするには?
InetAddress.getByName( "PC201511270151");
InetAddress.getByAddress(バイト)。
InetAddress.getLocalHost();
静的メソッドは、クラスを介して呼び出すことができます
メンバーの方法:
getHostAddress()// IPアドレスを取得します
gethostname()//ホスト名が成功しないことがあり得ます
GETHOSTNAME java.net.InetAddressクラスのメソッドは、ホスト名のIPアドレスを取得するために使用されます。リターン結果:このIPアドレスのホスト名は、セキュリティチェックが許可されていない場合、テキストのIPアドレスは、表現を返します。
6 、特許ポート
物理ポートNICポート
私たちは、論理ポートを参照すると、論理ポートです
各ネットワークプログラムは、少なくとも一つの論理ポートを持つことになります
識別する論理アドレス、異なるプロセスを識別するために使用されるプロセス
有効なポート:65535〜0,0〜1024によって使用または予約ポートのため。
ネットワークに接続する - あなたは360で、ポート番号を見ることができます - [ツール] - [ファイアウォールトラフィック
7 、プロトコルUDP およびTCP
UDP:接続を確立することなく、パケットにカプセル化されたソースおよび宛先データ、64Kの制限内の各データグラムのサイズは、接続がないため、プロトコルは、信頼できない、接続速度を確立せず。
TCP:接続の確立、データ伝送チャネルが形成され、データ伝送接続の大量;接続された3ウェイハンドシェイクを介しが完了し、信頼性のあるプロトコル、接続を確立する必要があり、効率が若干低くなります。
UDP:
コネクション指向。
信頼できません。
速いです。
データパケット送信、最大データパケット64K。
例えば:
チャットメッセージ、オンラインビデオ、ビデオ会議、テキストメッセージング、郵便局の小包。
TCP:
コネクション型。
安全性と信頼性
あまり効率的。
3ウェイハンドシェイクによって、接続の確立を確保します。
例えば:
ダウンロード、電話、QQチャット(オンラインオンライン行うには、次の応答に、チャットを始めました)
8 、ソケットソケットTCP
ソケットソケット:ネットワークソケットを識別するための一意の識別子を構成するために一緒に固有のIDとIPアドレスとポート番号の組み合わせ。
ソケット原則のメカニズム:
通信の両端には、ソケットを持っています。
実際には、ネットワーク・トラフィックは、ソケット間の通信です。
二つのデータ伝送間のソケットIO。
9 、UDP 伝送
DatagramSocketの与のDatagramPacket
送信側を確立する、受信端
セットアップパケット
ソケットの受信、送信の呼び出し方法
閉じるソケット
送信機と受信機は、2つの別々のプログラムで実行されています
。1 、UDPの送信- 送信側:
1:UDPソケットサーバーを作成します。
2:データは、カプセル化されたパケットに送信します
3:UDPソケットサーバは、パケットが送出され、
4:リソースを閉じます
2 、UDP 送信- 受信側:
UDPは、サービスを確立するソケット。
データは、受信方法で受信しました
データ・オブジェクトに格納された受信データパケット
ドッキングオブジェクトを完了することによって、受信したデータパケットを解析する。機能
リソースに閉鎖することができます
10 、TCP の送信
ソケット和のServerSocket
クライアント側とサーバー側の確立
接続が確立された後、データは、IOストリームソケットを介して送信されます
閉じるソケット
同様に、クライアントとサーバは、2つの別々のアプリケーションです。
1 、TCPの伝送- クライアント
1:に接続するには、クライアントソケットサービスと、暗黙的にサーバーを設定します。
2:接続が確立されると、それはチャネルがデータ送信のために確立されていることが示されているIOは、ソケットストリームの両方でソケット・ストリームをいうチャネルにチャネルを介してデータを読み書きすることができ、ストリームを読み取ります。そこには、ストリームに書き込まれます。
3:方法によってソケットオブジェクト、二つのストリームを取得することができます
4:データは、オブジェクトストリームを介して送信されてもよいです
5:データ転送が完了した場合、リソースを閉じます
2 、TCP 転送- サーバー側
1:サーバー側のソケットサービスを設定し、ポートを必要とします
2:サーバーの直接操作は流れないが、受け入れる方法により取得されたクライアントオブジェクト、及びストリーミング通信するクライアント取得したクライアントオブジェクトによって実行されます
3:クライアントによってストリームオブジェクトを取得する方法は、データの読み出しまたは書き込みデータ
4:サーバーがサービスを提供しているため、サービスの場合は、クライアントを閉じ、サーバーをシャットダウンする必要がある、しかし、一般的に近いクライアント意志、サーバーは、閉じません