Javaネットワークプログラミング3.UDPネットワークプログラミングのサイクル送信と受信最適化
2014 ワード
UDPネットワークプログラミングの最適化——DatagramSocketクラス
1、UDPプロトコル循環送信データ——クライアント
2、UDPプロトコルの循環受信データ――サーバー側
3、パッケージキーボード入力データ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line = null; while ((line = br.readLine()) != null){キーボードで受信したデータの処理}
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、パッケージキーボード入力データ