Javaネットワークプログラミング3.UDPネットワークプログラミングのサイクル送信と受信最適化


UDPネットワークプログラミングの最適化——DatagramSocketクラス
 
1、UDPプロトコル循環送信データ——クライアント
package cn.itcast_04;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/*
 *          
 *                。
 */
public class SendDemo {
	public static void main(String[] args) throws IOException {
		//       Socket  
		DatagramSocket ds = new DatagramSocket();
		//         
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String line = null;
		while ((line = br.readLine()) != null) {
			if ("886".equals(line)) {
				break;
			}
			//        
			byte[] bys = line.getBytes();
			// DatagramPacket dp = new DatagramPacket(bys, bys.length,
			// InetAddress.getByName("192.168.12.92"), 12345);
			DatagramPacket dp = new DatagramPacket(bys,bys.length,InetAddress.getByName("192.168.12.255"), 12345);
			//     
			ds.send(dp);
		}
		//     
		ds.close();
	}
}

2、UDPプロトコルの循環受信データ――サーバー側
package cn.itcast_04;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class ReceiveDemo {
	public static void main(String[] args) throws IOException {
		//       Socket  
		DatagramSocket ds = new DatagramSocket(12345);
		while (true) {
			//       
			byte[] bys = new byte[1024];
			DatagramPacket dp = new DatagramPacket(bys, bys.length);
			//     
			ds.receive(dp);
			//     
			String ip = dp.getAddress().getHostAddress();
			String s = new String(dp.getData(), 0, dp.getLength());
			System.out.println("from " + ip + " data is : " + s);
		}
		//     
		//                ,      
		// ds.close();
	}
}

 
3、パッケージキーボード入力データ
  • BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  • String line = null;
  • while ((line = br.readLine()) != null){キーボードで受信したデータの処理}
  •