基于UDP协议的Socket编程

public class Udp1 {

/**
* @param args
*/
public static void main(String[] args) {
//准备了一个空包
byte[] infos=new byte[1024];
DatagramPacket dp=new DatagramPacket(infos, infos.length);
//快递点
DatagramSocket socket=null;
try {
socket=new DatagramSocket(5000);
//在快递点取礼物
socket.receive(dp);
//拆礼物
String info=new String(dp.getData(),0,dp.getData().length);
System.out.println("客户端说:"+info);

//给客户端一个响应
String reply="一件大衣";
byte[] replys=reply.getBytes();
//客户端的地址
SocketAddress sa=dp.getSocketAddress();
//打一个包
DatagramPacket dq1=new DatagramPacket(replys,0,replys.length,sa);
//寄出去
socket.send(dq1);
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
socket.close();
}
}
}

 

public class Udp2 {

/**
* @param args
*/
public static void main(String[] args) {
//买礼物
String info="心形巧克力!";
byte[] infos=info.getBytes();
//对方地址和邮编(端口号)
InetAddress ia;
DatagramSocket socket=null;
try {
ia=InetAddress.getByName("localhost");
//包囊包装礼物
DatagramPacket dp=new DatagramPacket(infos,infos.length,ia,5000);
socket=new DatagramSocket();
//通过快递点往外寄出礼物
socket.send(dp);

//接收服务器的响应
//准备了一个空包
byte[] replys=new byte[1024];
DatagramPacket dp1=new DatagramPacket(replys, replys.length);
//在快递点取礼物
socket.receive(dp1);
//拆礼物
String reply=new String(dp1.getData(),0,dp1.getData().length);
System.out.println("客户端说:"+reply);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
socket.close();
}


}

}

posted on 2017-04-16 20:35  mliang  阅读(360)  评论(0编辑  收藏  举报

导航