這裏是我的發件人程序Java的UDP接收機無法接收數據
import java.net.*;
class Send{
public static void main(String[] args) {
try{
//setup
DatagramSocket socket=new DatagramSocket();
byte[] buffer=new byte[100];
InetAddress address=InetAddress.getLocalHost();
System.out.println("Address:"+address);
DatagramPacket packet=new DatagramPacket(buffer,buffer.length,address,10000);
//get data
String data="Hello";
//send data
buffer=data.getBytes();
System.out.println("Sending data");
socket.send(packet);
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
這裏是接收器方案
import java.net.*;
class Listen{
public static void main(String[] args) {
try{
//set up
DatagramSocket socket=new DatagramSocket(10000);
byte[] buffer=new byte[100];
DatagramPacket packet=new DatagramPacket(buffer,buffer.length);
//recieve
System.out.println("Started Listening");
socket.receive(packet);
//print
String receivedData=new String(packet.getData());
System.out.println(receivedData);
System.out.println("Done!");
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
我得到的是,監聽器正在運行時,它似乎是在等待發件人發送數據(打印「開始聆聽」)。發件人執行時,它似乎也正常運行(打印「發送數據」)。接收器也進一步執行(打印「完成!」),但數據包保持空白。
可能是什麼問題?
雖然最好避免使用二進制/文本轉換位平臺的默認編碼,太... –
@JonSkeet好點,我已經添加了一些解釋。 –
'StandardCharsets.UTF_8'是你的朋友,國際海事組織:) –