pom.xml
<dependency>
<groupId>org.graylog2</groupId>
<artifactId>syslog4j</artifactId>
<version>0.9.60</version>
</dependency>
接收端
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class MySyslogServer {
public static void main(String[] args) throws Throwable {
// TODO Auto-generated method stub
DatagramSocket datagramSocket = new DatagramSocket(5144);
while (true) {
DatagramPacket packet = new DatagramPacket(new byte[512], 512);
try {
//不会造成死循环,因为receive是阻塞式方法,若发送方不发送数据,则阻塞在该处
datagramSocket.receive(packet);
String msg = new String(packet.getData(), 0, packet.getLength());
System.out.println(packet.getAddress() + "/" + packet.getPort() + ":" + msg);
packet.setData("I am server!!!".getBytes());
datagramSocket.send(packet);
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
发送端
import org.graylog2.syslog4j.Syslog;
import org.graylog2.syslog4j.SyslogConstants;
import org.graylog2.syslog4j.SyslogIF;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
public class MySyslogClient {
public static void main(String[] args) {
String host = "192.168.31.129";
int port = 5144;
String aa ="消息";
SyslogIF syslog = Syslog.getInstance(SyslogConstants.UDP);// 协议
syslog.getConfig().setHost(host);// 接收服务器
syslog.getConfig().setPort(port);// 端口
syslog.getConfig().setMaxMessageLength(1024000);
try {
syslog.log(0, URLDecoder.decode(aa, "utf-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}