JAvaネットワークプログラミングUDP


UDPはブロードキャストデータグラムに基づく伝送プロトコルであり、接続がなく、信頼できないプロトコルである.
UDPプログラミングでは主に2つのクラスが用いられる:java.net.DatagramSocket:クライアントクライアントはメッセージjavaを送信または受信するために使用する.net.DatagramKet:データ・レポート
UDPプログラミングコードの例は次のとおりです.
送信側コード

package send;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException;

public class DataSender {
	public static void main(String[] args) throws IOException {
		
		//            ds
		DatagramSocket ds=new DatagramSocket();
		
		//     
		String str="Hello World";
		 byte[] bs=str.getBytes();
		 
		 //     
		 InetSocketAddress target=new InetSocketAddress("192.168.0.105",5555);
		//     
		DatagramPacket dp=new DatagramPacket(bs,0,bs.length,target); 
		//    
		ds.send(dp);
	}
}

受信側コード
package Receive;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

public class DataReceiver {

	public static void main(String[] args) throws IOException {
		
		//   5467    
		DatagramSocket socket =new DatagramSocket(5555);
		
		//       ,          
		byte[] buffer =new byte[128];
		DatagramPacket p=new DatagramPacket(buffer,buffer.length);
		
		//    ,      
		socket.receive(p);
	    //          
		String s=new String(buffer,0,p.getLength());
		System.out.println("      :"+s);
	}
}

受信側を先に実行し、送信側を実行します!そうでなければ、受信側はデータを受信できず、receive()はずっと待っています!受信側の実行結果:
受信内容:Hello World
送信側の実行結果:
送信されました.