其实我是因为flink没有封装好的sink,所以自定义了sink来调用这个类。。。。。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import java.io.IOException;
import java.net.*;

public class SocketUDPClient {

private InetAddress ip;
private int port;
private DatagramSocket socket;

public SocketUDPClient(String ip, int port) throws UnknownHostException, SocketException {
this.ip = InetAddress.getByName(ip);
this.port = port;
// 创建一个UDP套接字,与本地任意一个未使用的UDP端口绑定
socket = new DatagramSocket();
// 与本地一个固定的UDP端口绑定
// socket=new DatagramSocket(9000);
}

public void send(String data){
try {
//先准备一个待发送的数据报
byte[] outputData=data.getBytes();
//构建一个数据报文。
DatagramPacket outputPacket=new DatagramPacket(outputData, outputData.length, ip, port);
//给EchoUDPServer发送数据报
socket.send(outputPacket); //给EchoUDPServer发送数据报
} catch (IOException ex) { }
}

public void close(){
if (socket != null)
socket.close();//释放本地端口
}

}

方法变量都是封装好的,直接调用完事