株式会社イーブ|未経験・転職の方も就職可能。Javaプログラマー育成のエキスパート

HOMEJAVA技術者育成システム開発求人情報個人情報保護

第 98 回 ~ ソケットの入出力 ~

トップページ > Java技術者育成 > Javaワンポイント > 第 98 回 ~ ソケットの入出力 ~

引き続き「ソケットの入出力」について見ていきます。


前々回、前回はServerSocketクラス,Socketクラスを使用し、サーバとクライアントで接続を確立してデータのやり取りを行いました。
このようなコネクション型のTCP通信では信頼性の高い通信を実現することができます。
それに対し、コネクションレスのUDP通信は信頼性は保証されませんが、データの転送速度が速いことから、リアルタイム性の高いストリーミング配信などのアプリケーションに向いています。


今回からはJavaによるUDP通信について見ていきます。


次のサンプルコードは、データを送信するプログラムです。



import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;


public class Main {


    private static final String HOST = "localhost";
    private static final int PORT = 9999;
    private static final String DATA = "データグラム";


    public static void main(String[] args) {
        try {
            byte[] bytes = DATA.getBytes("Shift-JIS");
            DatagramSocket datagramSocket = new DatagramSocket();
            InetSocketAddress inetSocketAddress = new InetSocketAddress(HOST, PORT);
            DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length, inetSocketAddress);
            datagramSocket.send(datagramPacket);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


}



DatagramPacketクラスはデータ転送の単位(データグラムパケット)を表します。
DatagramSocketクラスはデータグラムパケットを送信するためのソケットを表します。
DatagramPacketインスタンスに送信先のIPアドレス、ポート、送信するデータを設定し、sendメソッドに渡すだけで送信できます。
コネクションを確立するわけではないので、送信先がデータを受信できる状態でなくても例外は発生しません。


[Javaワンポイント]内の前後の記事
第 99 回 ~ ソケットの入出力 ~
→ 第 98 回 ~ ソケットの入出力 ~
第 97 回 ~ ソケットの入出力 ~


■更新日時での前後の記事
4月8日 お天気
→ 第 98 回 ~ ソケットの入出力 ~
4月7日 お天気