UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当
它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。
一个互相发送、接受的 简单程序:
(部分代码:具体请下载下面文件)
--------------发送程序部分代码------------
while (true) {
String str = getInputStr();
try {
DatagramSocket ds = new DatagramSocket();
DatagramPacket dp = new DatagramPacket(str.getBytes(), 0, str
.getBytes().length, InetAddress
.getByName("192.168.1.199"), 6000);
ds.send(dp);
ds.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if ("quit".equals(str)) {
System.out.println("本第一端发送退出。。。");
break;
}
}
----接受程序部分代码-----------
while (true) {
try {
DatagramSocket ds = new DatagramSocket(3000);
byte[] b = new byte[1024];
DatagramPacket dp = new DatagramPacket(b, 1024);
ds.receive(dp);
String s = new String(dp.getData(), 0, dp.getLength());
if ("quit".equals(s)) {
System.out.println("第二端发送已退出..。");
System.out.println("本第一端接收程序退出..");
break;
}
String rece = s + " From Receive --"
+ dp.getAddress().getHostAddress() + " : "
+ dp.getPort();
System.out.println(rece);
ds.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
由于每个端都具有发送接受功能 所以要采用到线程。详细见下载资料中。