UDP程序

  • TCP的所有操作都必须建立可靠的连接,这样一来肯定会浪费大量的系统性能
  • UDP(不可靠的连接),利用数据报的形式进行数据发送,由于此时接收端可能处于关闭状态,所以利用UDP发送的数据客户端不一定可以接收到
  • 在Java中使用DatagramPacket类和DatagramSocket类完成UDP程序的开发
    DatagramPacket类常用方法
    UDP程序_第1张图片
    DatagramSocket类的常用方法
    UDP程序_第2张图片
    范例:范例:编写一个UDP服务端程序发送数据报
package com.lxh.nineteenchapter;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

public class UDPClient {
     
       public static void main(String[] args) throws IOException {
     
		DatagramSocket client=new DatagramSocket(9996);  //端口监听
		byte data[]=new byte[1024];   //保存接收数据
		DatagramPacket packet=new DatagramPacket(data,data.length);//创建数据报
		System.out.println("客户端等待接收发送的消息......");
		client.receive(packet);    //接收消息内容
		System.out.println("接收消息内容为:"+new String(data,0,packet.getLength()));
	    client.close();
       }
}

执行结果

客户端等待接收发送的消息......

范例:编写一个UDP服务端程序发送数据报

package com.lxh.nineteenchapter;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

public class UDPServer {
     
      public static void main(String[] args) throws IOException {
     
		DatagramSocket server=new DatagramSocket(9000);//端口监听
		String str="www.study.com";   //发送消息
		DatagramPacket packet=new DatagramPacket(str.getBytes(),0,str.length(),InetAddress.getByName("localhost"),9999);//发送数据
		server.send(packet);  //发送消息
		System.out.println("消息发送完毕......");
		server.close();
		
		
	}
}

执行结果

消息发送完毕......

你可能感兴趣的:(Java,se)