主なコンテンツ
-
ソフトウェアアーキテクチャCS / BS
-
通信ネットワークの三つの要素
-
TCP通信
-
ソケットソケット
-
ServerSocketを
教育の目標
- UDPとTCPプロトコルの特性を識別することができます
- TCPプロトコルの下に2人の一般的なクラス名を言うことができます
- TCPプロトコルのプログラムの下でのデータ伝送の文字列を書くことができるように
- TCPプロトコルの下ケースファイルのアップロードを理解します
- TCPプロトコルの下ケースを理解することができる2
第一章ネットワークプログラミングエントリー
C / Sの構造:クライアント/サーバー構造と呼ばれ、クライアント・サーバ・アーキテクチャを指します。一般的なプログラムは、QQ、サンダーや他のソフトウェアを持っています。
B / Sの構造:ブラウザ/サーバ構造と呼ばれるブラウザとサーバの構造を指します。一般的なブラウザグーグル、Firefoxとそうで。
どちらのアーキテクチャは、独自の利点がありますが、どのようなアーキテクチャに関係なく、ネットワークのサポートなしで行うことができます。ネットワークプログラミングは、二つのコンピュータの通信プログラムを達成するために、特定のプロトコルです。
-
TCP / IPプロトコル:
ソフトウェアアーキテクチャ02_、03_ネットワーク通信プロトコル、ネットワーク通信プロトコル種別04 _、05_IPアドレス、ポート番号06_
通信プロトコルは、非常に複雑であり、java.net
パッケージは、通信の低レベルの詳細を提供するクラスおよびインタフェースを含んでいます。我々は関係なく、通信の詳細の、Webアプリケーション開発に特化し、これらのクラスやインタフェースを使用することができます。
java.net
パッケージには2つの一般的なネットワークプロトコルをサポートしています。
-
UDP :ユーザデータグラムプロトコル(ユーザデータグラムプロトコル)。UDPはコネクションレスプロトコル、すなわち、データ送信、データ送信と受信端は、論理的な接続を確立していません。簡潔には、コンピュータが別のコンピュータにデータを送信する場合、送信側は、受信機が存在するかどうか確認をしない、それがデータを送信しますが、同一のデータが受信端で受信される場合、フィードバックは送信側に受信されませんデータへ。
UDPプロトコルの使用は、このような状況は、たとえ時折一つまたは二つのパケットが失わので、それは通常、そのようなUDPプロトコルを使用するには、ビデオ会議などのオーディオ、ビデオ、および一般的なデータ伝送のために使用され、少し資源、高い通信効率を消費し、また意志結果はあまり影響を与え受け取ります。
ネットワーク伝送の基本単位(データグラム)データグラム
-
TCP :伝送制御プロトコル(伝送制御プロトコル)。TCPプロトコルは、接続指向の論理接続送信を確立するためにデータを送信し、終了を受信する前に、即ち、プロトコル、および、データを送信し、これは、2台のコンピュータ間で信頼性の高いエラーのないデータ転送を提供します。
TCP接続が通過する各接続のニーズを作成し、明確なクライアントとサーバー、クライアントからサーバーへの接続要求でなければなりません「3ウェイハンドシェイク。」
-
スリーウェイハンドシェイク:TCPプロトコル、信頼性の高い接続を確保するために、データ、クライアントとサーバを送信するための準備の三段階の間の相互作用。
-
まず握手、クライアントは、サーバーが受信確認を待って、サーバーへの接続要求を送信します。
-
第二にハンドシェイクは、クライアントへの応答の背中を送信するために、サーバは、クライアントは、通知の接続要求を受信します。
-
-
-
完全な3ウェイハンドシェイクは、接続が確立され、クライアントとサーバがデータ転送を開始することができます。この接続指向特性により、TCPプロトコルは、データ伝送のセキュリティを保証することができ、それが広く使用されているため、このようなファイルのダウンロードなど、ウェブページを閲覧。
合意
-
プロトコル:コンピュータネットワーク通信が遵守しなければならないルールが導入された、それらを繰り返すことはしません。
IPアドレス
-
IPアドレス:アドレスインターネットプロトコルアドレス(インターネットプロトコルアドレス)
-
IPv4が:表されるように32ビットのバイナリ数は、一般的に、4つのバイトに分割されている
a.b.c.d
形で、例えば、192.168.65.100
。a、b、c、dは0〜255の間の10進整数であることを特徴とする請求は、42億まで表すことができます。
よく使用されるコマンド::ローカルIPアドレス、コンソールの種類を確認IPCONFIG 、チェックネットワーク接続、コンソールのタイプ:ピング スペースIPアドレス、特別なIPアドレス:ローカルIPアドレス:127.0.0.1
、localhost
ポート番号
通信ネットワークは、通信は、自然の中で二つのプロセス(アプリケーション)です。ネットワークトラフィックは、どのようにこれらのプロセスを区別する際に、各コンピュータには、進捗状況をたくさん持っていますか?
場合IPアドレスが一意のネットワーク上のデバイスを識別することができるので、ポート番号は一意のデバイスプロセス(アプリケーション)を識別することができます。
-
ポート番号:2バイトの整数、それは0から65535の範囲です。その中で、いくつかのよく知られているネットワークサービスとアプリケーションのための0と1023の間のポート番号は、一般的なアプリケーションのニーズは1024以上のポート番号を使用します。別のサービスまたはアプリケーションによって使用されるポート番号が占有した場合、現在のプログラムが起動に失敗した原因となります。
使用协议
+ IP地址
+ 端口号
概要(上)07_TCP通信の概要(低級)08_TCP通信
2.1概要
TCP通信2台のコンピュータ、通信の両端間のデータ交換を可能にし、厳密なクライアント(クライアント)とサーバー(サーバー)に分割する必要があります。
通信ステップの終了します。
-
サーバプログラムは、事前に起動し、接続するクライアントを待つ必要があります。
-
積極的にサーバーに接続されたクライアントは、接続が通信するために成功しています。サーバーは、クライアントを接続するためのイニシアチブを取ることができません。
Javaでは、それはTCP通信プログラムを実装するために2つのクラスを提供します。
-
クライアント:クラスが表します。作成オブジェクトを、サーバへの接続要求を送信し、要求に対するサーバの応答は、両方の通信を開始するための接続を確立します。
java.net.Socket
Socket
-
サーバー:クラスが表します。作成サービスを開くことと等価であり、クライアントの接続を待機オブジェクトを、。
java.net.ServerSocket
ServerSocket
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通信を実現します