Java ソケット プログラミングとは、接続の確立、データの送信、接続の終了などの操作を含む、ネットワーク通信に Java 言語を使用するプロセスを指します。 Java は、ソケット プログラミングをサポートするために、java.net.Socket と java.net.ServerSocket という 2 つのクラスを提供します。
Java ソケット プログラミングとは、接続の確立、データの送信、接続の終了などの操作を含む、ネットワーク通信に Java 言語を使用するプロセスを指します。 Java は、ソケット プログラミングをサポートするために、java.net.Socket と java.net.ServerSocket という 2 つのクラスを提供します。
ソケットとは、アプリケーション層とトランスポート層の間の橋渡しとなる「ソケット」を指します。ネットワーク上で使用し、双方向通信を行います。ソケット プログラミングでは、クライアントとサーバー間の通信はソケットを介して実装する必要があります。クライアントは Socket を介してサーバーにリクエストを送信し、サーバーはリクエストを受信した後に応答を返し、通信プロセス全体が完了します。
ソケット通信モデルは、TCP と UDP の 2 種類に分かれます。 TCP は、データの整合性と順序性を保証する信頼性の高い伝送プロトコルであり、信頼性の高い伝送が必要なシナリオに適しています。 UDP はコネクションレス型の送信プロトコルであり、データの整合性や順序性は保証されませんが、リアルタイム通信、ストリーミング メディア送信、その他のシナリオに適しています。
ソケット プログラミング プロセスには通常、次の手順が含まれます。
クライアントはサーバーに接続するためにソケット オブジェクトを作成する必要があり、サーバーは次のことを行う必要があります。クライアントの接続を待機する ServerSocket オブジェクトを作成します。 Socket と ServerSocket の作成方法は次のとおりです。
// 创建 Socket Socket socket = new Socket(String host, int port); // 创建 ServerSocket ServerSocket serverSocket = new ServerSocket(int port);
ここで、host はサーバーのアドレス、port はポート番号を表します。
接続を確立する前に、データ送信のためにソケットをローカル アドレスとポートにバインドする必要があります。 Socket アドレスをバインドする方法は次のとおりです。
// 绑定 Socket 地址 socket.bind(SocketAddress bindpoint);
ここで、bindpoint はバインドされるアドレスとポートです。
ServerSocket オブジェクトを作成した後、accept() メソッドを呼び出して、クライアントの接続要求の待機を開始する必要があります。 Socket オブジェクトを作成した後、connect() メソッドを呼び出してサーバーに接続する必要があります。接続プロセスは次のとおりです。
// 服务器等待连接 Socket socket = serverSocket.accept(); // 客户端连接服务器 socket.connect(SocketAddress endpoint);
ここで、エンドポイントはサーバーのアドレスとポートです。
接続が確立された後、クライアントはソケットの OutputStream を使用してサーバーにデータを送信でき、サーバーはソケットの InputStream を使用してデータを送信できます。クライアントから送信されたデータを受信します。クライアントは Socket の InputStream を使用してサーバーから送信されたデータを受信でき、サーバーは Socket の OutputStream を使用してクライアントにデータを送信できます。データの送受信方法は次のとおりです。
// 客户端向服务器发送数据 OutputStream outputStream = socket.getOutputStream(); outputStream.write(byte[] b); // 服务器向客户端发送数据 InputStream inputStream = socket.getInputStream(); inputStream.read(byte[] b);
byte[] bは送受信するデータを表します。
通信が終了したら、リソースを解放するために接続を閉じる必要があります。接続を切断する方法は次のとおりです
socket.close(); serverSocket.close();
Socket プログラミングで使用するポート番号は非対応である必要があります。 -system ポートを予約します。予約しないと、ポートが占有されているというエラーが発生します。
ソケットプログラミングでは、接続タイムアウトや接続中断など、ネットワーク通信においてさまざまな異常事態が発生する可能性があります。したがって、Socket プログラムを作成するときは、発生する可能性のある例外を処理する必要があります。
Socket をプログラミングする際には、ネットワーク負荷の問題を考慮する必要があり、ネットワーク負荷が高すぎると、接続障害やデータ送信障害が発生する可能性があります。
Java Socket プログラミングは、クライアントとサーバー間の双方向通信を実現する、ネットワーク通信をベースとしたプログラミング手法です。 Socketプログラミングでは、SocketとServerSocketという2つのクラスを使用してネットワーク通信を実現する必要があり、ネットワークの負荷や異常事態なども考慮する必要があります。
以上がJavaソケットプログラミングとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。