1、创建接受方:
package com.tiger.udp;
import java.io.*;
import java.net.*;
import java.util.Scanner;
/**
* UDP 发送方
* 1、假如: 我的发到:127.0.0.1, 端口号: 5555
* 2、创建一个 UDP 数据报报文包(packet),包含的内容如下:
* (1)数据
* (2)数据的长度
* (3)接收方 Address
* (4)接收方 Port
* @author tiger
* @Date 2017年8月2日
*/
public class Sender {
public static void main(String[] args) {
DatagramSocket socket = null;
DatagramPacket p = null;
Scanner sc = new Scanner(System.in);
System.out.println("请输入需要发送的消息:");
try {
socket = new DatagramSocket();
InetAddress ia = InetAddress.getByName("127.0.0.1");
//从控制台输入要发送的数据
String content = sc.nextLine();
System.out.println(content);
p = new DatagramPacket(content.getBytes(), content.getBytes().length, ia, 5556);
socket.send(p);
} catch (IOException e) {
e.printStackTrace();
}
}
}package com.tiger.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
/**
* UDP 接收方
* 注意:1、端口与发送方一致
*
* @author tiger
* @Date 2017年8月2日
*/
public class Receiver {
final static int PORT = 5556;
public static void main(String[] args) {
DatagramSocket socket = null;
DatagramPacket p = null;
try {
System.out.println("等待接收。。。。");
socket = new DatagramSocket(PORT);
byte[] buff = new byte[1024];
p = new DatagramPacket(buff, 50);
//一旦调用这一方法, 会程序的阻塞, 直到你收到有数据报为止。
socket.receive(p);
byte[] temp = p.getData();
int size = p.getLength();
if (size > 0) {
String content = new String(temp,0,size,"UTF-8");
System.out.println("接收到消息:"+content);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
2、创建发送方: