UDP不像TCP那样专门提供了一个SERVER端API,所有的都用DatagramSocket,接受packet数据报。所以说UDP是无连接的,因为所有的链接都是在数据报里,让DatagramSocket去发送。
Server端:
import java.net.DatagramPacket;
import java.net.DatagramSocket;
/**
* @author wangking E-mail:admin717@gmail.com
* @version 创建时间:2009-9-16 上午03:25:29
* 类说明
*/
public class UDPServer {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
byte[] buf = new byte[1024];
DatagramSocket socket = new DatagramSocket(5678);
DatagramPacket packet = new DatagramPacket(buf,buf.length);
while(true){
socket.receive(packet);
System.out.println(new String(buf,0,buf.length));
}
}
}
Client端的测试:
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
/**
* @author wangking E-mail:admin717@gmail.com
* @version 创建时间:2009-9-16 上午03:30:11
* 类说明
*/
public class UDPClient {
public static void main(String[] args) throws Exception {
DatagramSocket socket = new DatagramSocket(9999);
byte[] buf = "hhh".getBytes();
DatagramPacket packet = new DatagramPacket(buf,0,buf.length,new InetSocketAddress("127.0.0.1",5678));
socket.send(packet);
socket.close();
}
}