// 別スレッドで実行するほうがよい
private void sendMessage(String message){
// udpソケットで自分のIPで5100番ポートを指定
InetSocketAddress remoteAddress = new InetSocketAddress("127.0.0.1", 5100);
// UDPパケットに含めるデータ
byte[] sendBuffer = message.getBytes();
// UDPパケット
DatagramPacket sendPacket;
try {
// DatagramSocketインスタンスを生成して、UDPパケットを送信
sendPacket = new DatagramPacket(sendBuffer, sendBuffer.length, remoteAddress);
new DatagramSocket().send(sendPacket);
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
// 別スレッドで実行がほぼ必須
private void getMessage(){
// 5100番ポートを監視するUDPソケットを生成
DatagramSocket receiveSocket = null;
try {
receiveSocket = new DatagramSocket(5100);
} catch (SocketException e) {
e.printStackTrace();
}
// 受け付けるデータバッファとUDPパケットを作成
byte receiveBuffer[] = new byte[1024];
DatagramPacket receivePacket =
new DatagramPacket(receiveBuffer, receiveBuffer.length);
while (true) {
// UDPパケットを受信
try {
receiveSocket.receive(receivePacket);
} catch (IOException e) {
e.printStackTrace();
}
// 受信したデータをログへ出力
String message = new String(receivePacket.getData(),0, receivePacket.getLength());
Log.d("TEST", message);
}
}