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