UDP协议:与TCP不同的是,UDP是面向非连接的,且效率较高,不需要等待服务器的回应。它类似于现实中的发短信和邮件等,发送方只管发送信息即可,无需关注信息是否丢失。
服务器端:
> package com.geminno.text15.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class MyServer {
public static void main(String[] args) {
//创建服务器端指定端口
DatagramSocket ds=null;
DatagramPacket dgs=null;
try {
ds=new DatagramSocket(8855);
//准备容器存储接受的数据
byte [] bytes=new byte[1024];
//创建一个datagrampacket对象,用来接受数据
dgs=new DatagramPacket(bytes,bytes.length);
//服务器端接受数据
ds.receive(dgs);
//分析数据
byte[] data=dgs.getData();
System.out.println(new String(data,0,data.length));
} catch ( IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
ds.close();
}
}
}
客户端:
>package com.geminno.text15.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
public class MyClient {
public static void main(String[] args) {
// TODO Auto-generated method stub
DatagramSocket client=null;
//创建客户端对象
try {
client=new DatagramSocket(9999);
//准备数据
String s="快乐大本营";
byte[] data=s.getBytes();
//准备数据包
DatagramPacket dgs=new DatagramPacket(data,data.length ,new InetSocketAddress("127.0.0.1", 8855) );
//发送信息
client.send(dgs);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
client.close();
}
}
}