Java でのソケット プログラミング

WBOY
リリース: 2024-08-30 16:27:37
オリジナル
983 人が閲覧しました

World Wide Web とインターネットは、私たちの生活やお互いのコミュニケーション方法、そして科学、工学、商業のやり方を変えました。現代の生活は完全にインターネット中心、もしくはインターネット中心に動かされています。企業は、イノベーションを導入する新しい方法でさまざまなサービスを作成および通信するための新しい方法を継続的に模索しています。この記事では、Java でのソケット プログラミングについて説明します。

ソケットは、OSI モデルのトランスポート層のネットワークをプログラミングするためのインターフェイスを提供します。ソケットを使用したネットワーク通信は、インターネット全体で広く見られます。それに加えて、Java で書かれたソケット プログラムは、C、C++、Python などの非 Java 言語で書かれたソケット プログラムと通信できます。

広告 このカテゴリーの人気コース プログラミング言語 - 専門分野 | 54 コース シリーズ | 4 つの模擬テスト

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

ソケットクラスのメソッド

ソケット クラスのメソッドは Java にあります。ソケットはポート番号にバインドされているため、TCP はデータが送信されるポート番号を認識します。 Java は一連のクラスを提供しており、その 1 つが java.net です。これは、ネットワーク アプリケーションの迅速な開発に使用されます。 java.net パッケージに存在する主要なクラス、インターフェース、および例外により、クライアントおよびサーバー プログラムの作成に伴う複雑さが簡素化されます。

クラスは次のとおりです:

  • コンテンツハンドラー
  • データグラムパケット
  • データグラムソケット
  • データグラム ソケット インプ 1
  • HTTP URL 接続
  • ネットアドレス
  • マルチキャストソケット
  • サーバーソケット
  • ソケット
  • ソケットインプ 1
  • URL
  • URL 接続
  • URL エンコーダ
  • URL ストリーム ハンドラー

インターフェースは次のとおりです:

  • コンテンツ ハンドラー ファクトリ
  • ファイル名マップ
  • ソケットインプルファクトリー
  • URL ストリーム ハンドラー ファクトリ

例外は次のとおりです。

  • バインド例外
  • 接続例外
  • 不正な URL 例外
  • ホストへのルートがない例外
  • プロトコル例外
  • ソケット例外
  • 不明なホスト例外
  • 不明なサービス例外

TCP/IP ソケット プログラミング

プログラムの作成に使用される java.net パッケージから使用されるクラスが 2 つあります。

  • サーバーソケット
  • ソケット

サーバー プログラムは、入力ストリームと出力ストリームを通じて通信します。接続リクエストがある場合は、新しいソケットが使用され、それによって確立された接続がここにあります。

Java でのソケット プログラミング

方法 1 – サーバー ソケット プログラムの作成

Java でサーバーソケットプログラムを作成するには、さまざまな手順があります。

サーバーソケットプログラムを作成する簡単な手順は次のとおりです:

ステップ 1: ソケットサーバーが開きます。

Server Socket General= new Server Socket(PO)
ログイン後にコピー

ここでの PO はポート番号です。

ここで、ポート番号は、入力/出力ストリームを使用して通信するサーバー ネットワークに割り当てられます。

ステップ 2: 辛抱強く待つ必要があるクライアントリクエストがあります。

Socket General= server. accept()
ログイン後にコピー

これがサーバーです。 accept() はクライアントを待ちます。ここではソケットの名前は Client です。

ステップ 3: 接続が確立されるように I/O ストリームが作成されます

データ入力ストリーム

is = new Data Input Stream(client. Get Input Stream());
ログイン後にコピー

データ出力ストリーム

os = new Data Output Stream(client. get Output Stream());
ログイン後にコピー

入力ストリームと出力ストリームには Get Input Stream() が割り当てられ、それぞれ呼び出されます。

ステップ 4: クライアントとの連絡先が作成されます。

クライアントから受信:

string hello = br. Read Line();
ログイン後にコピー

クライアントに送信します:

br. Write Bytes("How are you\n");
ログイン後にコピー

次のコードは、クライアントと通信し、リクエストを受信およびクライアントに送信します。

ステップ 5: 最後に、ソケットが終了します。

最後に、ソケットのクローズ関数を使用して、ソケット プログラミングを閉じて終了します。

サーバーソケットの簡単な例を以下に示します。

サーバーに接続するための簡単なプログラム。

コード:

import java.net.*;
import java.io.*;
public class SimpleMachine {
public static void main(String args[]) throws IOException {
// On port 1362 server port is registered
ServerSocket soc = new ServerSocket(1362);
Socket soc1=soc.accept(); // Link is accepted after waiting
// Linked with the socket there should be a connection
OutputStream s1out = soc1.getOutputStream();
DataOutputStream dosH = new DataOutputStream (s1out);
// A string command is sent
dosH.writeUTF("Hello how are you");
// The connection can be closed but the server socket cannot.
dosH.close();
s1out.close();
soc1.close();         }
}
ログイン後にコピー

方法 2 – 単純なサーバー ソケット プログラムの作成

次に、Java のシンプル クライアント プログラムを見ていきます。

Java で単純なクライアント プログラムを作成する手順を以下に示します。

ステップ 1: ソケット オブジェクトを作成します。

Socket client= new Socket(server, port_id)
ログイン後にコピー

サーバーとポート ID は接続されています。つまり、サーバーはポート ID に接続されています。

ステップ 2: 入力/出力ストリームが作成されます。

is = new Data Input Stream(client.getInputStream());
ログイン後にコピー
os = new Data Output Stream(client.getOutputStream());
ログイン後にコピー

入力ストリームは、クライアントとの通信に出力ストリーム os が使用されます。

Step 3: Input/Output streams are made for talking to the Client.

Data is read from the server:

string hello = br. readLine();
ログイン後にコピー

Send data to the server:

br.writeBytes("How are you\n")
ログイン後にコピー

This step communicates with the server. The input stream and output stream both communicates with the server.

Step 4: Close the Socket when done.

This function will close the client when it is finally done.

An example of a simple server socket program is shown below.

A simple program for the client.

Code:

import java.net.*;
import java.io.*;
public class SimpleMachineClient {
public static void main(String args[]) throws IOException
{
// At port 1325, connection to the server is opened
Socket s1H = new Socket("host",1325);
// Read the input stream by getting an input file from the socket
Input Stream s1I = s1. getInputStream();
Data Input Stream disH = new Data Input Stream(s1In);
String str = new String (disH.readUTF());
System.out.println(str);
// After it is done, we can close the connection.
disH.close();
s1I.close();
s1H.close();
}
}
ログイン後にコピー

Conclusion

Socket programming is beneficial in Java and in any other programming language. A program written in Java can connect with a program written in C or C++. In other words, the language of the socket program doesn’t matter when there has to be a connection between the two. In this article, we have basically seen the Simple Server and the Simple Client example where there is a connection between the server socket and in the other, there is a connection between the server socket. We have used TCP/IP programming for the same. However, there are a lot of programming techniques like UDP programming techniques and URL programming techniques. We have not seen examples of such in this article. We have stressed on TCP/IP programming technique.

以上がJava でのソケット プログラミングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート