udp协议接收数据,以及解决中文乱码的问题


需求:对接第三方的日志接口,用udp协议发送syslog日志

核心代码:

try {
//指定本机端口 用这个端口接收 别人也是给这个端口发
DatagramSocket socket = new DatagramSocket(514);
while (true){
//指定容量
byte[] bytes = new byte[1024];
//创建 接收数据的包
DatagramPacket packet = new DatagramPacket(bytes,bytes.length);
//接收数据
socket.receive(packet);

byte[] arr = packet.getData();
int length = packet.getLength();
System.out.println(new String(arr,0,length,"GBK"));
System.out.println("----------------");
}
}catch (Exception e){
e.printStackTrace();
}
接下来是中文乱码问题:(上面代码都有体现下面说的3条)
1. 发送方要用 字符串的字节长度
2. 接收方解码要和发送方的编码格式一样
3. 接收方要用实际接收的数据长度


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM