UDP:
一、特点:
1)、以数据为中心
2)、非面向连接 不安全 数据可能会丢失
3)、效率高
二:用得到的类:
DatagramSocket DatagramPacket
三、组成
1、客户端:
1)创建客户端 即DatagramSocket类 + 指定端口
2)准备数据
3)打包数据以字节的形式 DatagramPacket+服务器的地址以及端口
4)发送
5)释放资源
2、服务器端:
1)创建服务器端 DatagramSocket 类 +指定端口
2) 准备接受的容器 字节数组 封装DatagramSocket
3) 包 接收数据
4)分析数据
5)释放资源
客户端代码:
package cn.skh.zUDP01;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException;
/**
* 客户端
* 1 、创建客户端以及端口
* 2、准备接受容器
* 3、打包(发送的地点以及端口)
* @author SKH
*
*/
public class Myclient {
public static void main(String[] args) throws IOException {
//1、创建客户端+端口
DatagramSocket client=new DatagramSocket(6666);
//2、准备数据
String str="udp编程";
byte data[]=str.getBytes();
// 3、打包(发送的地点以及端口)
DatagramPacket packet=new DatagramPacket(data,data.length,new InetSocketAddress("DESKTOP-Q9PCLOB",9999));
//4、发送
client.send(packet);
//5、释放
client.close();
}
}
服务端代码:
package cn.skh.zUDP01;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
/**
* 服务端
* 1 、创建服务端以及端口
* 2、准备接受容器
* 3、打包 封装成包
* 4、接收数据
* 5、分析数据
* @author SKH&L
*
*/
public class MyServer {
public static void main(String[] args) throws IOException {
//1、创建服务端+窗口
DatagramSocket server=new DatagramSocket(9999);
//2、准备接收器
byte [] container=new byte[1024];
//3、封装成包
DatagramPacket packet=new DatagramPacket(container,container.length);
//4、接收数据
server.receive(packet);
//5、分析数据
byte []data=packet.getData();
int len=packet.getLength();
System.out.println(new String(data,0,len));
//6、释放
server.close();
}
}