什么是协议
计算机网络中链接和通信的规则。
UDP协议
用户数据传输协议(User Datagram Protocol)
UDP面向无连接通信协议
速度快,有大小限制一次最多发送64k,数据不安全容易丢失
TCP协议
传输控制协议(transmission control protocol)
TCP协议是面向连接的通信协议
速度慢,没有大小控制,数据安全
public class UDP接受 {
public static void main(String[] args) throws IOException {
//接受数据
//1、创建快递公司
//在接受的时候,一定要绑定端口
//绑定的端口一定要和发送的端口保持一致
DatagramSocket ds=new DatagramSocket(10086);
//2、接受数据包
byte[] bytes=new byte[1024];
DatagramPacket dp=new DatagramPacket(bytes,bytes.length);
//该代码是阻塞的
//程序执行到这一步,会在这里死等
//等待执行段发送信息
ds.receive(dp);//快递公司接受包裹
//3、解析数据包
byte[] data=dp.getData();
int len=dp.getLength();//会有多少字节数据
InetAddress address=dp.getAddress();//是从哪里发过来
int port=dp.getPort();//是从哪个端口发过来
System.out.println("接受到数据"+new String(bytes,0,bytes.length));
System.out.println("这个数据是"+address+"这个电脑的"+port+"端口发出的");
//4、释放资源
ds.close();
}
}
public class UDP发送 {
public static void main(String[] args) throws IOException {
//发送数据
//1、创建DatapramSocket对象(快递公司)
//细节:
//绑定端口:以后我们就是从这个端口往外发送
//空参 :所有可用的端口中随机使用一个
//有参:指定端口号进行绑定
DatagramSocket ds=new DatagramSocket();
//2、打包数据
String str="你好";
byte[] bytes=str.getBytes();
InetAddress address=InetAddress.getByName("127.0.0.1");
int port=10086;
//传送bytes这个数组,传送全部长度,送往address这个IP,这个端口
DatagramPacket dp=new DatagramPacket(bytes,bytes.length,address,port);
//3、发送数据(快递公司发货了)
ds.send(dp);
//4、释放资源
ds.close();
}
}