この記事では、主に Java ネットワーク プログラミングのクラス メソッドと例を紹介します。必要な友人は参照してください。
ネットワーク プログラミングとは、複数のデバイス (コンピューター) で実行されるプログラムを作成することを指し、これらのデバイスはすべてネットワークを介して接続されます。
java.net パッケージの J2SE API には、低レベルの通信の詳細を提供するクラスとインターフェイスが含まれています。これらのクラスとインターフェイスを直接使用して、通信の詳細ではなく問題の解決に集中できます。
java.net パッケージは、2 つの一般的なネットワーク プロトコルのサポートを提供します:
TCP: TCP は、Transmission Control Protocol の略称で、2 つのアプリケーション間の信頼性の高い通信を保証します。 TCP/IP として知られるインターネット プロトコルに一般的に使用されます。
UDP:UDPはUser Datagram Protocolの略で、コネクションレス型プロトコルです。アプリケーション間で送信されるデータのパケットを提供します。
このチュートリアルでは主に次の 2 つのトピックについて説明します。
ソケット プログラミング: これは最も広く使用されているネットワーキング概念であり、詳細に説明されています
URL 処理:この部分は別のスペースで説明されます。Java でさらに詳しく知るにはここをクリックしてください言語での URL 処理。
ソケット プログラミング
ソケットは、TCP を使用した 2 台のコンピューター間の通信メカニズムを提供します。 クライアント プログラムはソケットを作成し、サーバーのソケットへの接続を試みます。
接続が確立されると、サーバーは Socket オブジェクト を作成します。これで、クライアントとサーバーは、Socket オブジェクトへの書き込みと読み取りによって通信できるようになります。
java.net.Socket クラスはソケットを表し、java.net.ServerSocket クラスはサーバー プログラムがクライアントをリッスンしてクライアントとの接続を確立するメカニズムを提供します。
2 台のコンピューター間でソケットを使用して TCP 接続を確立する場合、次の手順が実行されます:
サーバーは、サーバー上のポートを介した通信を表す ServerSocket オブジェクトをインスタンス化します。
サーバーは ServerSocket クラスの accept() メソッドを呼び出します。このメソッドは、クライアントがサーバー上の指定されたポートに接続するまで待機します。
サーバーが待機している間、クライアントは Socket オブジェクトをインスタンス化し、サーバー名とポート番号を指定して接続を要求します。
Socket クラスの コンストラクター は、クライアントを指定されたサーバーとポート番号に接続しようとします。通信が確立されると、サーバーと通信するための Socket オブジェクトがクライアント上に作成されます。
サーバー側では、accept() メソッドは、クライアントのソケットに接続されているサーバー上の新しいソケット reference を返します。
接続確立後は、I/Oストリームを使用して通信が行われます。各ソケットには出力ストリームと入力ストリームがあります。クライアントの出力ストリームはサーバーの入力ストリームに接続され、クライアントの入力ストリームはサーバーの出力ストリームに接続されます。
TCP は双方向通信プロトコルであるため、データは 2 つのデータ ストリームを通じて同時に送信できます。以下は、ソケットを実装するためにいくつかのクラスによって提供される便利なメソッドの完全なセットです。
ServerSocket クラスのメソッド
サーバー アプリケーションは、java.net.ServerSocket クラスを使用してポートを取得し、クライアント要求をリッスンします。
ServerSocket クラスには 4 つの構築メソッドがあります:
シリアル番号 | メソッドの説明 |
1 | public ServerSocket(int port) throws IOException Create特定のポート上のサーバーソケットにバインドします |
2 |
public ServerSocket(int port, int backlog) throws IOException 指定されたバックログを使用してサーバーソケットを作成し、指定されたローカルポート番号にバインドします |
3 |
public ServerSocket(int port, int backlog, InetAddress address) throws IOException 指定されたポート、リッスンバックログ、バインド先のローカル IP アドレスを持つサーバーを作成します |
4 | public ServerSocket() throws IOException 非バインドサーバーソケットを作成する |
バインドされていないサーバーソケットを作成します。 ServerSocket 構築メソッドが 例外をスローしない 場合は、アプリケーションが指定されたポートに正常にバインドされ、クライアントのリクエストをリッスンしていることを意味します。
ServerSocket クラスの一般的なメソッドをいくつか示します。
number | メソッドの説明 |
1 |
public int Port() はこのソケットを返しますリッスンするポート |
2 |
public Socket accept() throws IOException このソケットへの接続をリッスンして受け入れる |
3 |
public void setSoTimeout(int timeout ) 有効にする/タイムアウト値をミリ秒単位で指定して SO_TIMEOUT を無効にします |
4 |
public void binding(SocketAddress host, int backlog) ServerSocket を特定のアドレス (IP アドレスとポート番号) にバインドします |
Socket クラスのメソッド
java.net.Socket クラスは、クライアントとサーバーの両方が相互に通信するために使用するソケットを表します。クライアントはインスタンス化を通じて Socket オブジェクトを取得し、サーバーは accept() メソッドの戻り値を通じて Socket オブジェクトを取得します。 Socket クラスには 5 つの構築メソッドがあります。port) は UnknownHostException、IOException をスローします。
ストリームソケットを作成して接続します指定されたIPアドレスの指定されたポート番号に接続します
public Socket(String host, int port, InetAddress localAddress, int localPort) throws IOException. | ソケットを作成し、リモートホスト上の指定されたリモートポートに接続します|
public Socket(InetAddress host, int port, InetAddress localAddress, int localPort) throws IOException |
Createsソケットを作成し、指定されたリモートアドレスに接続します リモートポートを指定します |
public Socket() |
システムのデフォルトタイプ SocketImpl を通じて未接続のソケットを作成します |
シリアル番号 | メソッドの説明 |
1 |
public void connect(SocketAddress host, int timeout) throws IOException このソケットをサーバーに接続し、タイムアウト値 |
public InetAddress getInetAddress() ソケット接続のアドレスを返します | |
public int getPort() このソケットが接続されているリモートポートを返します
|
|
public int getLocalPort() このソケットがバインドされているローカルポートを返します | |
public SocketAddress getRemoteSocketAddress() 接続されているこのソケットを返します エンドポイントのアドレス、または接続されていない場合は null |
|
public InputStream getInputStream() throws IOExceptionこのソケットの入力ストリームを返します | |
public OutputStream getOutputStream () throws IOException を返しますこのソケットの出力ストリーム | |
public void close() throws IOExceptionこのソケットを閉じる |
InetAddressクラスのメソッド
元の IP アドレスが指定されている場合は、InetAddress オブジェクトを返します
2 | static InetAddress getByAddress(String host, byte[] addr)提供されたホスト名と IP アドレスに基づいて InetAddress を作成します |
3 | ホスト名を指定してホストの IP アドレスを決定します |
String getHostAddress() IP アドレス 文字列 (テキスト表現として) |
|
5 |
この IP アドレスのホスト名を取得します |
6 |
static InetAddress getLocalHost() |
String toString()このIPアドレスをStringに変換します | |
以上がネットワークプログラミングソケットの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。