ネットワークプログラミングソケットの詳しい説明
この記事では、主に 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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

Java の乱数ジェネレーターのガイド。ここでは、Java の関数について例を挙げて説明し、2 つの異なるジェネレーターについて例を挙げて説明します。

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java は、初心者と経験豊富な開発者の両方が学習できる人気のあるプログラミング言語です。このチュートリアルは基本的な概念から始まり、高度なトピックに進みます。 Java Development Kit をインストールしたら、簡単な「Hello, World!」プログラムを作成してプログラミングを練習できます。コードを理解したら、コマンド プロンプトを使用してプログラムをコンパイルして実行すると、コンソールに「Hello, World!」と出力されます。 Java の学習はプログラミングの旅の始まりであり、習熟が深まるにつれて、より複雑なアプリケーションを作成できるようになります。

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4
