Java Socket例程3 UDP

UdpSend.java

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;


public class UdpSend {
public static void main(String args[]){
DatagramSocket ds = null;
DatagramPacket dp = null;
try{
ds = new DatagramSocket(3000); //实例化一个UDP的套接字并绑定3000绑定
}catch(SocketException e){

}
String str = "hello world";
try{
dp = new DatagramPacket(str.getBytes(),str.length(),InetAddress.getByName("localhost"),9000);
}
catch(UnknownHostException ex1){

}
try{
ds.send(dp); //发送数据到本机的9000

}catch(IOException e){

}
ds.close();
}
}

 

UdpReceive.java

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;


public class UdpReceive {
public static void main(String args[]){
DatagramSocket ds = null; //创建一个套接字对象
byte[] buf = new byte[1024]; //实例化一个数组
DatagramPacket dp = null; //创建一个套接字结构对象
try{
ds = new DatagramSocket(9000);//实例化并绑定端口
}
catch(IOException e){

}

dp = new DatagramPacket(buf,1024);
try{
ds.receive(dp);//接收数据并存放在dp中
}
catch(IOException e2){

}
String str = new String(dp.getData(),0,dp.getLength()) +" from " +dp.getAddress().getHostAddress()+":"+dp.getPort();
System.out.println(str); //打印接收到的内容
ds.close();
}
}




posted @ 2011-12-17 14:48  hnrainll  阅读(365)  评论(0编辑  收藏  举报