1.UDP:(User Datagram Protocal)用户数据报协议,主要用于用于面向查询和应答的服务
常用的类:DatagramSocket:用于接收和发送数据包的套接字,DatagramPacket:数据报包
2.UDP与TCP的区别
UDP TCP
是否连接:面向非连接 面向连接
是否可靠:不可靠 可靠
传输速度: 高效 不高效
数据量: 小数据量 大数据量
3UDP传输数据简单实例
服务端
import java.io.IOException;
import java.net.*;
//发送端
public class UDPSender {
public static voidmain(String[]args) {
Stringstr = "nihao吗";
DatagramSocketds = null;
DatagramPacket dp = null;
try {
//定义一个发包的Socket,端口使用9999
ds =newDatagramSocket(9999);
//要发送的数据包,一定要指定目的地IP和端口号
dp =newDatagramPacket(str.getBytes(), 0,str.getBytes().length,
newInetSocketAddress(“127.0.0.1“, 5555));
//发送数据
ds.send(dp);
} catch (SocketException e) { e.printStackTrace();
} catch (IOException e) { e.printStackTrace();
}finally{
if(dp != null){ ds.close(); }
}
}
}
客户端
import java.io.IOException;
import java.net.*;
//接收端
public class UDPReceiver {
public static voidmain(String[]args) {
byte buf[] = new byte[1024];
DatagramPacketdp = newDatagramPacket(buf,buf.length);
DatagramSocketds = null;
try {
//建立一个收包的socket,监听在5555端口
ds =newDatagramSocket(5555);
while(true){
//收数据--此方法在接收到数据报前一直阻塞
ds.receive(dp);
System.out.println(new String(buf,0,dp.getLength()));
}
} catch (SocketException e) {e.printStackTrace();
} catch (IOException e) {e.printStackTrace();
} finally {
if (null !=ds){ds.close(); }
}
}
}
4.URL和URI的区别
URL:(Uniform Resource Locator)统一资源定位符,是一个网页地址
URI:(Uniform Resource Indefiner)统一资源标志符:是网页上某段文字,一张图片,一段视频,它也是URL的一中