udpclient.java
package com.sxt.loc;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException;
/**基本流程:
* 发送端
* 同一协议下端口不允许冲突
* 1、 使用DatagramSocket 指定端口 创建发送端
* 2、 准备数据 一定转成字节数组
* 3、 封装成DategramPacket包裹, 需要指定目的地
* 4、 发送包裹send(DategramPacket p)
* 5、 释放资源
*/
public class udpclient {
public static void main(String[] args) throws Exception {
System.out.println("发送方启动中-----");
DatagramSocket client = new DatagramSocket(6666);
String name = "我爱写代码";
byte[] msg = name.getBytes();
DatagramPacket packet = new DatagramPacket(msg, 0, msg.length,
new InetSocketAddress("localhost",9999));//接收端DatagramSocket的端口保持一致
client.send(packet);
client.close();
}
}
udpserver.java
public class udpserver {
public static void main(String[] args) throws Exception {
DatagramSocket server = new DatagramSocket(9999);//这里和发送端DatagramPacket的端口保持一致
byte[] container = new byte[1024 * 60];
DatagramPacket packet = new DatagramPacket(container, 0, container.length);
server.receive(packet);
byte[] datas = packet.getData();
int len = packet.getLength();
System.out.println(new String(datas, 0, len));
server.close();
}
}
同时打开后:
udpclient.java运行结果:
发送方启动中-----
udpserver.java运行结果:
我爱写代码