JAVA ------ネットワークプログラミングの3つの要素

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

  1. IPアドレス
  2. プロトコル

1.IPアドレス

IPアドレスの一般的なコマンド:

  • ipconfig:ローカルIPアドレスを表示します
  • IPアドレスにpingを送信:ネットワークが接続されているかどうかを確認します
  • 特別なIPアドレス:127.0.0.1。これはループバックアドレスであり、ローカルアドレスを表すことができ、通常はテストに使用されます。

IPアドレス
IPアドレス:ネットワーク内のデバイスの一意の識別子です

IPアドレスは2つのカテゴリに分類されます。

  1. IPv4:ネットワークに接続されている各ホストに32ビットアドレスを割り当てます。TCP / IP規則によれば、IPアドレスはバイナリで表され、各IPアドレスは32ビット長(4バイト)です。たとえば、バイナリ形式のIPアドレスは "10100000 10101000 000000101000010 *です。このような長いアドレスは扱いにくいです。使いやすさのために。IPアドレスは多くの場合、10進数形式で記述され、中央に記号" "が付いて区別されます。バイトしたがって、上記のIPアドレスは「192.168.1.66」と表すことができます。このIPアドレスの表記は「ドット付き10進表記」と呼ばれ、1と0よりも明らかに覚えやすいです。

  2. IPv6:インターネットの活発な発展により、IPアドレスの需要は増加していますが、ネットワークアドレスのリソースが限られているため、IPの割り当てはますます緊迫しています。アドレス空間を拡張するには、IPv6を介してアドレス空間を再定義します。128ビットのアドレス長を使用し、16バイトの各グループを16進数の8つのグループに分割します。これにより、ネットワークアドレスリソースが不足する問題が解決されます。


InetAddressの使用

IPアドレスの取得と操作を容易にするために、JavaはInetAddressを使用するためのクラスInetAddressを提供します
。このクラスはインターネットプロトコル(IP)アドレスを表します。

  • static InetAddress getByName(String host):ホスト名のIPアドレスを決定します。
    ホスト名は、マシン名またはIPアドレスにすることができます

  • String getHostName():このIPアドレスのホスト名を取得します

  • String getHostAddress()は、テキスト表示でIPアドレス文字列を返します

コードデモを見てください:

netAddress address=InetAddress.getByName("LAPTOP-A61GB327");

このLAPTOP-A61GB327は私のコンピューターの名前ですが、コンピューターのIPに変更することもできます

package InteAddress;

import java.net.InetAddress;
import java.net.UnknownHostException;

public class InteAdressDemo {
    
    
	public static void main(String[] args) throws UnknownHostException{
    
    
		InetAddress address=InetAddress.getByName("LAPTOP-A61GB327");
		
		String name=address.getHostName();
		
		String ip=address.getHostAddress();
		
		System.out.println("主机名:"+name);
		System.out.println("ip地址:"+ip);
	
	}
}

第二に、ポート

ポートは、デバイス上のアプリケーションの一意の識別子です

ポート番号:2バイトで表される整数。値の範囲は0〜65535です。その中で、0〜1023のポート番号は、いくつかのよく知られたネットワークサービスおよびアプリケーションに使用され、通常のアプリケーションは1024を超えるポート番号を使用する必要があります。ポート番号が別のサービスまたはアプリケーションによって占有されている場合、現在のプログラムの起動に失敗します


3.合意

プロトコル:コンピュータネットワークでは、接続と通信のルールはネットワーク通信プロトコルと呼ばれます

1.UDPプロトコル

  • ユーザーデータグラムプロトコル(ユーザーデータグラムプロトコル)
    UDPはコネクションレス型通信プロトコルです。つまり、データ送信中、データの送信者と受信者は論理接続を確立しません。簡単に言えば、コンピュータが別のコンピュータにデータを送信するとき、送信側は受信側が存在するかどうかを確認せず、データを送信します。同様に、受信側がデータを受信するとき、送信側にフィードバックを提供しません。 。データへ。
    UDPプロトコルを使用したリソース消費量が少なく、通信効率が高いため、通常、オーディオ、ビデオ、および通常のデータの送信に使用されます。

  • たとえば、ビデオ会議では通常UDPプロトコルが使用されます。これは、この場合に1つまたは2つのデータパケットが失われることがある場合でも、受信結果に大きな影響を与えないためです。ただし、UDPプロトコルを使用してデータを送信する場合、UDPの接続がないため、データの整合性は保証されません。したがって、重要なデータを送信するときにUDPプロトコルを使用することはお勧めしません。

2.TCPプロトコル

  • 伝送制御プロトコル(伝送制御プロトコル)
    TCPプロトコルはコネクション型通信プロトコルです。つまり、データを送信する前に、送信側と受信側の間に論理接続が確立され、データが送信されます。これにより、信頼性が高く、 2台のコンピュータ間の伝送でエラーのないデータ。TCP接続では、クライアントとサーバーを明確にし、クライアントがサーバーに接続要求を送信する必要があります。接続が作成されるたびに、「スリーウェイハンドシェイク」が必要です。

  • スリーウェイハンドシェイク:TCPプロトコルでは、データ送信の準備段階で
    接続の信頼性を確保するためにクライアントとサーバー間で3つの対話が行われます。最初のハンドシェイクでは、クライアントはサーバーに接続要求を送信し、待機します。サーバー
    は2番目のハンドシェイクを確認します。サーバーはクライアントに応答を送り返し、接続要求を受信したことをクライアントに通知します
    。3番目のハンドシェイクでは、クライアントは接続を確認するためにサーバーに確認メッセージを再度送信します。

  • スリーウェイハンドシェイクが完了し、接続が確立された後、クライアントとサーバーはデータ送信を開始できます。このコネクション型の特性により、TCPプロトコルはデータ転送のセキュリティを保証できるため、広く使用されています。ファイルのアップロード、ファイルのダウンロード、Webページの閲覧など。


おすすめ

転載: blog.csdn.net/weixin_45102820/article/details/113777287