UDP不同于TCP ,尽力传输,不可靠、非连接型。
主要涉及到两个类:
DatagramSocket类
DatagramPacket类,用于实现一个connectionless的数据报传输。
实例:
package com.UDP.socket;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class TestUDP1 {
public static void main(String[] args) throws Exception {
DatagramSocket socket = new DatagramSocket(7000);
byte[] bufferd = new byte[2048];
DatagramPacket packet = new DatagramPacket(bufferd, bufferd.length);
socket.receive(packet);
String str = new String(bufferd, 0, packet.getLength());
System.out.println(str);
String string = "got it!";
DatagramPacket packet2 = new DatagramPacket(string.getBytes(),
string.length(), packet.getAddress(), packet.getPort());
socket.send(packet2);
socket.close();
}
}
package com.UDP.socket;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class TestUDP2 {
public static void main(String[] args) throws Exception{
DatagramSocket socket = new DatagramSocket();
String str = "hello boy.";
DatagramPacket packet = new DatagramPacket(str.getBytes(),
str.length(), InetAddress.getByName("localhost"), 7000);
socket.send(packet);
byte[] bufferd = new byte[2048];
DatagramPacket packet2 = new DatagramPacket(bufferd, bufferd.length);
socket.receive(packet2);
String string = new String(bufferd, 0, packet2.getLength());
System.out.println(string);
socket.close();
}
}