ホームページ Java &#&チュートリアル Java のネットワーク プログラミング関数を使用してネットワーク通信とデータ送信を行う方法

Java のネットワーク プログラミング関数を使用してネットワーク通信とデータ送信を行う方法

Oct 27, 2023 pm 04:39 PM
tcp/ip データフロー Javaネットワーク通信とデータ送信 ソケット

Java のネットワーク プログラミング関数を使用してネットワーク通信とデータ送信を行う方法

Java のネットワーク プログラミング関数を使用してネットワーク通信とデータ送信を行う方法

ネットワーク通信は、現代のコンピューター分野で最も重要なアプリケーションの 1 つです。 Java では、ネットワーク プログラミング関数を使用して、ネットワーク通信とデータ送信を実装できます。この記事では、TCP 接続や UDP 接続の確立など、Java のネットワーク プログラミング機能の使用方法を紹介し、具体的なコード例を示します。

1. ネットワーク通信に TCP を使用する

TCP (伝送制御プロトコル) は、コネクション型で信頼性の高いバイト ストリーム伝送を提供する信頼性の高い伝送プロトコルです。以下は、ネットワーク通信に TCP を使用するサンプル コードです。

import java.io.*;
import java.net.*;

public class TCPClient {
    public static void main(String[] args) {
        try {
            // 创建Socket对象,指定服务器的IP地址和端口号
            Socket socket = new Socket("127.0.0.1", 8888);

            // 创建输入流和输出流
            OutputStream out = socket.getOutputStream();
            InputStream in = socket.getInputStream();

            // 发送数据到服务器
            String message = "Hello, Server!";
            out.write(message.getBytes());

            // 接收服务器返回的数据
            byte[] buffer = new byte[1024];
            int length = in.read(buffer);

            // 关闭连接
            socket.close();

            // 输出接收到的数据
            System.out.println("Message from server: " + new String(buffer, 0, length));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
ログイン後にコピー

上記のコード例では、TCP クライアントが作成され、Socket オブジェクトを介してサーバーとの接続が確立され、入力ストリームと出力ストリームはデータ用に作成されます。 read() メソッドを通じてサーバーから返されたデータを送受信します。最後に、接続が閉じられます。

同様に、クライアントから送信されたデータを受信して​​次を返す TCP サーバーも必要です。

import java.io.*;
import java.net.*;


public class TCPServer {
    public static void main(String[] args) {
        try {
            // 创建ServerSocket对象,监听指定的端口号
            ServerSocket serverSocket = new ServerSocket(8888);

            // 等待客户端的连接
            Socket socket = serverSocket.accept();

            // 创建输入流和输出流
            InputStream in = socket.getInputStream();
            OutputStream out = socket.getOutputStream();

            // 接收客户端发送的数据
            byte[] buffer = new byte[1024];
            int length = in.read(buffer);

            // 处理数据
            String message = new String(buffer, 0, length);
            System.out.println("Message from client: " + message);

            // 发送数据到客户端
            String response = "Hello, Client!";
            out.write(response.getBytes());

            // 关闭连接
            socket.close();
            serverSocket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
ログイン後にコピー

上記のコード例では、TCP サーバーが作成され、指定されたデータをServerSocket オブジェクト、ポート番号を指定し、accept() メソッドによるクライアントの接続を待ちます。クライアント接続を受信すると、データ送信のために入力ストリームと出力ストリームが作成されます。クライアントから送信されたデータを受信した後、対応する処理が実行され、データは出力ストリームを通じてクライアントに送信されます。最後に、接続が閉じられます。

2. ネットワーク通信に UDP を使用する

UDP (User Datagram Protocol) は、コネクションレスで信頼性の低いデータ伝送を提供する単純な伝送プロトコルです。以下は、ネットワーク通信に UDP を使用するサンプル コードです。

import java.io.*;
import java.net.*;

public class UDPClient {
    public static void main(String[] args) {
        try {
            // 创建DatagramSocket对象
            DatagramSocket socket = new DatagramSocket();

            // 创建发送数据包
            String message = "Hello, Server!";
            DatagramPacket packet = new DatagramPacket(message.getBytes(), message.length(), InetAddress.getByName("127.0.0.1"), 8888);

            // 发送数据包
            socket.send(packet);

            // 创建接收数据包
            byte[] buffer = new byte[1024];
            DatagramPacket receivePacket = new DatagramPacket(buffer, buffer.length);

            // 接收服务器返回的数据包
            socket.receive(receivePacket);

            // 关闭连接
            socket.close();

            // 输出接收到的数据
            String response = new String(receivePacket.getData(), 0, receivePacket.getLength());
            System.out.println("Message from server: " + response);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
ログイン後にコピー

上記のコード例では、UDP クライアントが作成され、サーバーとの接続が DatagramSocket オブジェクトを通じて実現され、データ パケットと送信が行われます。受信データ パケットが作成され、send() メソッドを通じてサーバーにデータを送信し、receive() メソッドを通じてサーバーから返されたデータ パケットを受信します。最後に、接続が閉じられます。

これに応じて、クライアントから送信されたデータを受信して​​次を返す UDP サーバーも必要です。

import java.io.*;
import java.net.*;

public class UDPServer {
    public static void main(String[] args) {
        try {
            // 创建DatagramSocket对象,指定端口号
            DatagramSocket socket = new DatagramSocket(8888);

            // 创建接收数据包
            byte[] buffer = new byte[1024];
            DatagramPacket packet = new DatagramPacket(buffer, buffer.length);

            // 接收客户端发送的数据包
            socket.receive(packet);

            // 处理数据
            String message = new String(packet.getData(), 0, packet.getLength());
            System.out.println("Message from client: " + message);

            // 发送数据包给客户端
            String response = "Hello, Client!";
            DatagramPacket responsePacket = new DatagramPacket(response.getBytes(), response.length(), packet.getAddress(), packet.getPort());
            socket.send(responsePacket);

            // 关闭连接
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
ログイン後にコピー

上記のコード例では、UDP サーバーが作成され、ポート番号が次のように指定されています。 DatagramSocket オブジェクトを取得し、受信パケットを作成します。クライアントから送信されたデータ パケットを受信した後、対応する処理を実行し、送信データ パケットを作成してクライアントに送信できます。最後に、接続が閉じられます。

概要:

上記のコード例を通じて、ネットワーク通信とデータ送信に Java のネットワーク プログラミング関数を使用するのが比較的簡単であることがわかります。 TCP プロトコルを使用してコネクション型の信頼性の高い伝送を実現することも、UDP プロトコルを使用してコネクションレス型の信頼性の低い伝送を実現することもできます。この記事のサンプル コードが、ネットワーク通信とデータ送信に Java のネットワーク プログラミング関数を使用する方法を読者が理解するのに役立つことを願っています。

以上がJava のネットワーク プログラミング関数を使用してネットワーク通信とデータ送信を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

tcp/ip の正式名は何ですか? tcp/ip の正式名は何ですか? Nov 29, 2022 pm 04:25 PM

tcp/ipの正式名称は「Transmission Control Protocol/Internet Protocol」で、中国語で「伝送制御プロトコル/インターネットプロトコル」を意味します。 TCP/IP プロトコルは、TCP と IP という 2 つのプロトコルを指すだけでなく、FTP、SMTP、TCP、UDP、IP などのプロトコルで構成されるプロトコル クラスターも指します。TCP/IP プロトコルでは TCP プロトコルが使用されるためです。 IPプロトコル 最も代表的なものなのでTCP/IPプロトコルと呼ばれます。

データ通信に PHP および TCP/IP プロトコルを使用する方法 データ通信に PHP および TCP/IP プロトコルを使用する方法 Jul 29, 2023 pm 01:46 PM

データ通信に PHP および TCP/IP プロトコルを使用する方法 はじめに: 現代のインターネット時代において、データ通信は非常に重要な側面です。クライアントとサーバー間の通信でも、異なるサーバー間の通信でも、TCP/IP プロトコルは常に最も一般的に使用される通信プロトコルの 1 つです。この記事では、データ通信に PHP 言語と TCP/IP プロトコルを使用する方法を紹介し、関連するコード例を示します。 1. TCP/IP プロトコルの概要 TCP/IP プロトコルは、インターネット プロトコル クラスターの基礎です。

OSI と TCP/IP の違いと関係は何ですか OSI と TCP/IP の違いと関係は何ですか Aug 15, 2022 pm 01:55 PM

違い: 1. TCP/IP はプロトコル クラスターであるのに対し、OSI はモデルです; 2. TCP/IP は 5 層構造であるのに対し、OSI は 7 層構造です; 3. TCP/IP の 3 番目の層はのみサポートしていますIP プロトコル、OSI はすべてのネットワーク層プロトコルをサポートします。接続: 1. OSI はサービス、インターフェイス、プロトコル、およびレイヤーの概念を導入しますが、TCP/IP は OSI の概念を利用します; 2. OSI には最初にモデルがあり、次にプロトコル、最初に標準、そして次に実践がありますが、TCP/IP IP には最初にプロトコルとアプリケーションがあり、次に参照 OSI モデルであるモデルが提案されます。

TCPとIPの違いは何ですか TCPとIPの違いは何ですか Sep 04, 2023 pm 02:19 PM

TCP と IP はインターネットにおける 2 つの異なるプロトコルです: 1. TCP はトランスポート層プロトコル、IP はネットワーク層プロトコル; 2. TCP はデータ パケットのセグメント化、並べ替え、確認、再送信などの機能を提供します。プロトコルはデータ パケットの送信元アドレスと宛先アドレスを提供する役割を果たします; 3. TCP は接続指向のプロトコルですが、IP プロトコルはコネクションレスです; 4. TCP はフロー制御と輻輳制御も提供します。

tcp ip参照モデルのアプリケーション層に属するプロトコルは何ですか? tcp ip参照モデルのアプリケーション層に属するプロトコルは何ですか? Jul 04, 2022 am 10:09 AM

アプリケーション層プロトコルには次のものがあります: 1. あるマシン上のユーザーがリモート マシンにログインして作業を実行できるようにする Telnet、2. あるマシンから別のマシンにファイルを移動する方法を提供する FTP、3. SMTP は、電子メール送信を提供します; 4. SNMP は、IP ネットワーク内のネットワーク ノードを管理するために使用される標準プロトコルです; 5. DNS は主に、使い慣れた Web アドレスをコンピュータが理解できる IP アドレスに「変換」するために使用されます; 6. HTTP はリクエストです。 WWW 上のホームページを取得するために使用される応答プロトコル。

データフローの管理と処理のための PHP と Apache NiFi の統合 データフローの管理と処理のための PHP と Apache NiFi の統合 Jun 25, 2023 pm 12:25 PM

ビッグデータの時代において、データの管理と処理は企業開発の重要な部分となっています。データ ストリーム処理に関しては、ApacheNiFi が主要なオープン ソース データ ストリーム処理ツールです。 PHP 言語は Web サイトやアプリケーションの開発によく知られていますが、PHP と Apache NiFi を統合してデータ フローの管理と処理を実現するにはどうすればよいでしょうか? 1. ApacheNiFi の概要 ApacheNiFi は、強力で視覚的なデータ ストリーム処理ツールです。さまざまなデータを視覚化できます

Go 言語での一般的な TCP/IP エラー分析 Go 言語での一般的な TCP/IP エラー分析 May 31, 2023 pm 10:21 PM

Go は、成長を続けているプログラミング言語であり、高性能で信頼性が高く、同時実行対応のネットワーク アプリケーションの実装に適しています。 Go を使用して TCP/IP プロトコルに関連するネットワーク プログラムを作成する場合、さまざまなエラーが発生する傾向があります。また、いくつかの一般的な TCP/IP エラーは、プログラムのデバッグに特定の困難を引き起こす可能性があります。この記事では、Go 言語で一般的な TCP/IP エラーを解決する方法に焦点を当てます。 1. EOF エラー 通常は EOF (EndOfFile) エラーです。

Go言語によるデータフローモデル設計手法 Go言語によるデータフローモデル設計手法 May 31, 2023 pm 11:21 PM

インターネット アプリケーションの増加に伴い、データ処理の重要性がますます高まっています。データをより適切に処理し、システムの効率と信頼性を向上させるために、データ フロー モデルの設計が重要な手法となっています。この記事では、フロー パイプライン、グループ化、フィルターなどを含む、Go 言語でデータ フロー モデルを設計する方法を紹介します。ストリーム パイプ ストリーム パイプはデータ フロー モデルの基本コンポーネントであり、ある処理ユニットから別の処理ユニットにデータを渡すことができます。 Go 言語では、チャネルをパイプラインとして使用でき、チャネルはデータの異種混合をサポートします。

See all articles