Java I/OおよびNIOネットワークのクリーンアップ7:ソケット


1. 🍖 コンセントとは?


ユーザーがアクセスできるインタフェースを提供します.

2. 🍔 コンセントの使用


コンセントを使用するには、コンセントの作成(コンセントを開く)、コンセントを通じてコンセントを送信および受信し、コンセントを閉じる(コンセントを閉じる)3つの手順を理解する必要があります.

1.コンセントの3種類のフォーマット


SOCK STREAM:双方向通信スロット、データストリームの交換を実現
SOCK DGRAM:データ通信用スロットであり、SOCK STREAMと同様に双方向通信が可能である.
SOCK ROW:PINGプログラム使用
SOCK STREAM形式の別の言い方はTCPであり、SOCK DGRAM形式はUDPである.

2.インターネットアドレスとポート


ネットワークを介して情報を転送および受信するにはソケットが必要です.
ソケットを使用するには、インターネットアドレスとポートを知っておく必要があります.
マンション:IP(インターネットアドレス)
番号:PORT(ポート)
1台のコンピュータでは、複数のプロセスがソケットを介して通信し、ポートを使用して各ソケットを区別します.
0から1023まで、数字はよく知られているポートで、有名なプログラムを使用するポートが指定されており、1024以降に使用されます.

3. 🍕 InetAddressクラスを使用してドメインとIPを変換


コンピュータと通信するには、IPアドレス、javaを知らなければなりません.Net PackageにおけるIPに関する重要なカテゴリはInetAddressである.
InetAddressオブジェクトは、ジェネレータを使用してオブジェクトを作成するのではなく、以下の静的特性を持つ方法でオブジェクトを作成します.

1.InetAddressクラスを使用してnslookupコマンドを実装

public class NsLookup{
	public static void main(String[] args){
    	InetAddress inetaddr[] = null;
        try{
        inetaddr = InetAddress.getAllByName(args[0]);
        }catch(UnknownHostException e){
        e.printStackTrace();
        }
        for(int i = 0 ; i< inetaddr.length; i++){
        system.out.println(inetaddr[i].getHostName());
        system.out.println(inetaddr[i].getHostAddress());
        system.out.println(inetaddr[i].toString);
        }
    }

}
ドメインまたはIPアドレスをgetAllByNameメソッドに渡すと、InetAddress[]が返されます.
この場合、1つのドメインは複数のIPを持つことができるため、配列形式で返されます.

2.InetAddressクラスを使用してローカルコンピュータ名とIPを取得

public class NsLookup{
	public static void main(String[] args){
    	InetAddress inetaddr = null;
        try{
        inetaddr = InetAddress.getLocalHost();
        }catch(UnknownHostException e){
        e.printStackTrace();
        }
        system.out.println(inetaddr.getHostName());
        system.out.println(inetaddr.getHostAddress());
        
        system.out.println("byte[] 형식의 ip 주소값 출력");
        byte[] ip = inetaddr.getAddress();
        
    }

}