Javaのネットワークプログラミング:ソケット通信の基礎

2024/07/30
x-logoline-logo
Java入門
1. Javaとは?初心者向けの基本ガイド
2. Javaプログラミングの始め方:インストールから初めてのプログラムまで
3. Javaの基本構文:変数、データ型、演算子を解説
4. Javaの制御構文:if文、for文、while文をマスターしよう
5. Javaのクラスとオブジェクト:オブジェクト指向プログラミングの基礎
6. Javaのメソッド:定義と呼び出し方法を解説
7. Javaの配列とリスト:データの格納と操作方法
8. Javaの例外処理:try-catch文でエラーを管理しよう
9. Javaの継承とポリモーフィズム:オブジェクト指向の重要概念を理解する
10. Javaのインタフェースと抽象クラス:コードの再利用性を高める方法
11. Javaのファイル操作:ファイルの読み書きをマスターしよう
12. Javaのコレクションフレームワーク:リスト、セット、マップの使い方
13. Javaのスレッドと並行処理:マルチスレッドプログラミングの基本
14. Javaのネットワークプログラミング:ソケット通信の基礎
15. Javaのデータベース操作:JDBCを使ったデータベース接続
16. JavaのGUIプログラミング:Swingでデスクトップアプリを作成
17. Javaの正規表現:文字列操作を効率化するテクニック
18. JavaのLambda式とStream API:モダンなコーディング手法を学ぶ
19. Javaのメモリ管理とガベージコレクション:パフォーマンス最適化の基本
20. Javaの単体テスト:JUnitを使ったテスト駆動開発
21. Javaのデバッグテクニック:効果的なバグ修正方法
22. Javaのコードリファクタリング:読みやすいコード
23. Javaのフレームワーク:Spring Bootを使ったWebアプリ開発
24. JavaのRESTful API開発:Spring RESTでWebサービスを作成
25. Javaのセキュリティ対策:安全なプログラムを書くためのガイド
26. Javaのパフォーマンスチューニング:アプリケーションの速度を最適化する方法
27. Javaのデプロイメント:アプリケーションをサーバーに公開する方法

Javaのネットワークプログラミング:ソケット通信の基礎

2024/07/30
x-logoline-logo
PR

この記事では、Javaを使ったネットワークプログラミングの基本について紹介します。特にソケット通信に焦点を当てて説明します。

ネットワークとソケットとは?

まず、ネットワークとは複数のコンピュータがつながっている状態のことを指します。私たちがインターネットを利用するのも、ネットワークのおかげです。

そして、ソケットはネットワーク上でデータを送り合うための「窓口」のようなものです。これを使って、クライアント(データを送る側)とサーバー(データを受け取る側)が通信できます。

Javaでのソケット通信の仕組み

Javaでは、ソケット通信を行うために主に次の2つのクラスを使います。

ServerSocketクラス

サーバー側がクライアントからの接続を待ち受けるために使うクラスです。これを使うことで、特定のポートで待機し、クライアントがアクセスしてくるのを待ちます。

Socketクラス

クライアント側は、このクラスを使ってサーバーに接続します。接続が成功すると、データの送受信が可能になります。

基本的なコード例

ここでは、簡単なサーバーとクライアントのコードを見てみましょう。

サーバーコード


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

public class MyServer {
    public static void main(String[] args) {
        try (ServerSocket serverSocket = new ServerSocket(12345)) {
            System.out.println("サーバーが立ち上がりました。接続を待っています...");

            Socket socket = serverSocket.accept();
            System.out.println("クライアントが接続しました。");

            // データの受信
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String message = in.readLine();
            System.out.println("受信したメッセージ: " + message);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

クライアントコード


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

public class MyClient {
    public static void main(String[] args) {
        try (Socket socket = new Socket("localhost", 12345)) {
            // データの送信
            PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
            out.println("こんにちは、サーバーさん!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
この記事はAIを使用して作成されています。
PR