3

UDPデータグラムを介して2つのJavaクラス間で転送されるバイトバッファの例を提供できますか?

4

2 に答える 2

4

これどう?

import java.io.IOException;
java.net.DatagramPacket をインポートします。
java.net.DatagramSocket をインポートします。
java.net.InetSocketAddress をインポートします。


パブリック クラス サーバー {

    public static void main(String[] args) throws IOException {
        DatagramSocket ソケット = 新しい DatagramSocket(新しい InetSocketAddress(5000));
        バイト[]メッセージ=新しいバイト[512];
        DatagramPacket パケット = 新しい DatagramPacket(メッセージ、メッセージの長さ);
        socket.receive(パケット);
        System.out.println(new String(packet.getData(), packet.getOffset(), packet.getLength()));
    }
}
import java.io.IOException;
java.net.DatagramPacket をインポートします。
java.net.DatagramSocket をインポートします。
java.net.InetSocketAddress をインポートします。


パブリック クラス クライアント {

    public static void main(String[] args) throws IOException {
        DatagramSocket ソケット = 新しい DatagramSocket();
        socket.connect(新しい InetSocketAddress(5000));
        byte[] message = "オー ハイ!".getBytes();
        DatagramPacket パケット = 新しい DatagramPacket(メッセージ、メッセージの長さ);
        socket.send(パケット);
    }
}
于 2008-09-17T04:44:13.417 に答える
0

@なし

DatagramSocket クラスは確かに磨き上げる必要があります。DatagramChannel はクライアントにとってはわずかに優れていますが、サーバー プログラミングにとっては混乱を招きます。例えば:

import java.io.IOException;
java.net.InetSocketAddress をインポートします。
java.nio.ByteBuffer をインポートします。
java.nio.channels.DatagramChannel をインポートします。


パブリック クラス クライアント {

    public static void main(String[] args) throws IOException {
        DatagramChannel channel = DatagramChannel.open();
        ByteBuffer buffer = ByteBuffer.wrap("オー ハイ!".getBytes());
        channel.send(buffer, new InetSocketAddress("localhost", 5000));
    }
}

私が言うJSR-203を持ってきてください

于 2008-09-17T04:57:05.400 に答える